首页 > 代码库 > C#类的构造函数
C#类的构造函数
对于构造函数,和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 MyClass26 {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 }
C#类的构造函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。