.ctor 构造函数,在类被实例化时,它会被自动调用。
.cctor 类型初始化器,是一个静态方法,无参数无返回值,不能直接调用,最多只有一个
在继承中对象构造过程,看下面这段程序:
1 |
|
可以看到三者都有一个.ctor,B、C中有.cctor,而A没有,打开B,C的.cctor,可以看到它们都负责初始化自己的静态字段,现在主要来看它们的.ctor。
总结
- .ctor是构造方法;
- .cctor是类型初始化器,在C#中也就是静态构造函数;
- 当类C实例化时,会先对声明时就进行赋值的字段赋值,然后调用基类的构造函数,基类再以同样的方法构造自己,一直到顶层的System.Object,然后再回来执行C的显式构造方法中的代码,就是这么一个递归的过程。