标签:style blog color io os 使用 ar div sp
对于构造函数,和C++定义的类似,注意一旦自定义类带参数的构造函数未定义无参数的构造函数,那么系统将不会提供默认构造函数;
静态构造函数,用来对静态字段初始化,在类创建完毕之后,类实例化之前,由系统调用;
静态构造函数没有public等控制符,没有返回值和参数;
对象初始化,对于类的对象实例化可以使用两种方法来声明:
new Class(); //默认构造函数
或者:
new Class {X=1,Y=2}; //也是默认构造函数;
析构函数,使用~标记,声明中除了名称什么都没有,只有函数体;无法显式调用析构函数,可以使用另外一个接口--Dispose接口,之后在析构函数中判断是否调用析构;
上述过程称为标准清理模式;
比较:构造函数和析构函数都针对实例,静态构造针对的是静态字段,只有实例才有析构函数,静态不对应实例,因此没有析构;
字段的readonly修饰符,在构造函数中实现类似const的特性,可以在不同的构造函数中调用不同的值,且一旦确定就无法更改,不像const那样必须初始化就固定了值;
因此readonly就相当于对于其他实例不通用的const;
例如:
1 namespace ConsoleApplication1 2 { 3 class Test 4 { 5 readonly double PI = 3.14; 6 readonly int Num; 7 8 public Test(double x,double y) 9 { 10 Num = 1; 11 } 12 public Test(int a,int b) 13 { 14 Num = 2; 15 } 16 public Test() 17 { 18 Num = 0; 19 } 20 public void printNum() 21 { 22 Console.WriteLine("{0}",Num); 23 } 24 } 25 class MyClass 26 { 27 static void Main(string[] args) 28 { 29 Test t1 = new Test(); 30 Test t2 = new Test(1,2); 31 Test t3 = new Test(1.0,2.0); 32 t1.printNum(); 33 t2.printNum(); 34 t3.printNum(); 35 Console.ReadKey(); 36 } 37 } 38 }
标签:style blog color io os 使用 ar div sp
原文地址:http://www.cnblogs.com/lhyz/p/3965099.html