C# 静态构造函数和实例构造函数
字段可以分为静态字段和实例字段,同样构造函数也可以分为静态构造函数和实例构造函数。
@1、实例构造函数:
#1:若构造函数有修饰符extern,则表示该构造函数为外部构造函数,外部构造函数不提供任何实际的实现,函数体中仅由一个分号组成。一般情况下,构造函数总是public类型,若为private类型,表明类不能被实例化。
#2:实例构造函数可以重载。
#3::base([参数列表])表明调用基类中相应的构造函数。
#4::this([参数列表])表明调用该类本身所声明的其他构造函数。
#5:构造函数中既可以对静态字段进行赋值,也可以对非静态字段进行初始化。
#6:实例构造函数不能被继承。若一个类中没有声明任何实例构造函数,系统会自动提供一个不带参数的默认构造函数。
@2、静态构造函数:
#1:静态构造函数主要用于初始化一些静态的变量。静态构造函数只会执行一次,而且是在创建此类的第一个实例 或 引用任何静态成员(包括静态方法)之前,由.NET自动调用。
#2:静态构造函数没有访问修饰符, 因为是由.NET自动调用的。
#3:静态构造函数没有参数。
#4:一个类中只能有一个静态构造函数。
#5:静态构造函数只能运行一次。
#6:静态构造函数不能被继承。
#7:若没有写静态构造函数,而类中包含有初始值设定的静态成员,则编译器会自动生成默认的构造函数。
#8:静态构造函数与无参的实例构造函数不冲突,可同时出现。
参考文献:吴晓艳《C#语言程序设计》