读书笔记2

第三章:C#中的组件

 1、类(class):用于创建对象的数据结构;用于定义对象中包含的数据,但其本身并不包含任何数据

    ①、对象:类的实例;包含数据以及与数据相关的方法

    ②、成员(members):与类相关的数据和方法

2、声明类:关键词class

    <修饰符><类名称>

    ①、修饰符规定了类的存取信息,定义了类的作用域

       new:和嵌套类一起使用,用于隐藏和基类名称相同的继承类

       public:可以从任何程序代码中存取的类

       private:从包含类型中存取的类,private修饰符通常和包含static方法的类一起使用

       protected:从包含类型或从包含类型的导出类型中存取的类

       internal:可以从当前部件(部件也可以叫程序集)中存取的类

       sealed:防止从基类导出其他类

       abstract:定义其他类的基类;抽象类没有实例,支持继承;不能用sealed

 3、继承(inheritance):从现有类导出新类;允许导出类重用类的数据和方法;不能隐式继承基类的构造函数和析构函数;单继承(single inheritance),多派生

         class<导出类(派生类)>:<基类>

4、构造函数(constructor):在从类实例化对象的时候调用的默认方法;每个类都有一个构造函数,其名称与类名相同,无返回值

    ①、修饰符:public private protected internal

         public class Employee

         {

             public Employee()

             {

                 String Name=Me

}

public Employee(string EmployeeName)

{

     Name= EmployeeName;

}

}

      ②、在创建实例时,初始化实例是非常重要的,但是在类实例超出作用域时,破坏实例也是非常重要的,因此,有了析构函数

5、析构函数(destructors):与构造函数相似,只是有“~”符号在前面

          public class Employee

         {

             ~Employee()

             {

                 String Name=Me

}

}

          ①、不能显示的调用析构函数,当程序不再使用实例时将自动调用

     6、在释放资源之后清理内存的方法:

          ①、Finalize()方法:在不需要的时候释放数据成员所占用的资源,在垃圾搜集系统废弃对象之前清理内存,当调用类的析构函数式将自动调用该方法,因此程序员不能调用该方法

                        该方法无返回值无参数传递不可覆盖需等待会阻碍内存

          ②、Dispose()方法和Close()方法:删除类实例之后,立即释放资源,要明确调用

     7、方法(method):代码的逻辑片段,可以执行特定的操作

           ①、声明方法:

               <修饰符><返回类型><方法名称>(参数1,参数2,…)

               {

                      语句

}

           ②、调用方法:

               对象1.方法1(参数1,参数2,…);

           ③、向方法传递参数

                值参数(value parameters):按值向方法传递的参数

引用参数(reference parameters):按引用传递的变量值,关键字ref

         对象1.方法1(参数1ref 参数2,…);

         *$参数1改动不会改变parameters的原始值,参数2改动会影响它的原始值,因为参数2是引用传值

输出参数(output parameters):通常用关键字out

         对象1.方法1(out 参数1);

         *$在这里,作为输出参数将对象1传给方法1,可以不初始化就将它传给方法

参数数组(parameter array):只能传递一维数组,关键字params

         对象1.方法1(参数1,params 数组类型[] 参数2);

         *$数组参数只能排在参数列表的最后面且不能与引用参数、输出参数一起使用

      错误写法:对象1.方法1(params 数组类型[]参数1, ref参数2);

           ④、方法修饰符:

              static:类的任何特定实例都不能调用,调用需指定方法容器类的名称

              new:当尝试隐藏与导出类方法名称相同的基类方法时,可以抑制编译器的警告

              public:与类的public相似

              private:声明为private方法是声明它的类所私有的。不能从包含private方法的类之外调用private方法

              protected:与类的protected相似

              internal:与类的internal相似

              extern:无限制作用域,甚至可以在不同语言中调用extern声明的方法

              virtual:虚方法,包含它的基类的派生类可以覆写它,不能与staticoverrideabstract一起使用

              abstract:是特殊类型的virtual方法,里面不包含实现它方法

              override:用于覆写abstractvirtual方法

              sealed:和override一起使用,以覆盖virtual方法,而它所在类的派生类不能覆写这个方法

      8、方法重载(method overloading):相同的方法名称,不同的参数类型,不同的参数个数

           ①、定义重载方法:

                public int Add(int x,int y)

{

   int z=x+y;

   return z;

}

public string Add(string string1,string string2)

{

   string string3=string1+string2;

   return string3;

}

            ②、调用重载方法:

                Object1.Add(45,25);

            ③、默认参数:C#不支持默认参数,解决方法就是方法重载

                public int Add(int x)

 {

   int z=x+100;

   return z;

}

       9、命名空间(namespaces):是容器,可以在逻辑上将功能相关的相似类分组到一起,也可以使用命名可见分组类似的数据类型

             ①、声明命名空间

                  namespaces Employee

                  {

                     class Employee

}

              ②、可以嵌套命名空间

                   namespaces Employee

                   {

                        namespaces Salary

                         {

                             class Salary

}

}

引用Salary类需用Employee.Salary.Salary

               ③、访问命名空间:

                   using Employee

                   using Employee.Salary

               ④、别名: using <别名>=<>

                         Using aliasSalary=Employee.Salary

       10、结构:是一种数据结构,包含析构函数、常量、变量、方法、索引、特性、运算符和嵌套类型

               ①、 结构是值类型,类是引用类型,因此结构不需要分配堆,只是存储在内存堆栈中;声明为结构类型的变量直接包含数据,而类变量仅仅包含对数据的引用;结构不支持继承;用于对相似数据分组

                   <修饰符> struct <结构名称>

{}

修饰符:new public private protected internal

不能使用abstract sealed

               ②、 一个结构复制到另一个结构:创建结构用于存储少量数据是可行的

                   定义

public struct Employee

                   {

                     public in Empid;

                     public string Empname;

                     public string Empemail;

                     public string Empsalary;

}

实现

Employee Emp1;

Employee Emp2;

Emp1=new Employee();

Emp1.Empname=ss;

Emp1.Empemail=ganqiyin2009@163.com;

Emp1.Empsalary=$1000;

复制

Emp2=Emp1;

 

       11、枚举(enumeration):是一种数据结构,以易于理解的名称来存储数据

               <修饰符>enum<枚举名称>

 修饰符:new public private protected internal

不能使用abstract sealed

        12接口(interface:用于声明一组方法的组件;对相关方法、特性、事件和索引进行分组;仅包含方法声明;所有接口都是public

                interface <接口名称>

                interface Employee

                {}

                 interface Salary

                 {}

interface Salary: Employee//接口也可以继承

                 {}

 

                 class Employee:Employee,Salary

{}

13、编写、编译和执行C#程序

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值