静态构造函数是实现对一个类进行初始化的方法成员。它一般用于对静态数据的初始化,静态构造函数不能有参数,不能有修饰符而且不能被调用,当类被加载时,类的构造函数自动被调用。
准则:
1、在一个程序的执行过程中,静态构造器最多只执行一次。
2、静态构造器在类的静态成员初始化之后执行,或者讲编译器会奖静态成员初始化语句转换成赋值语句放在静态构造器执行的最开始。
3、静态构造器在任何类的静态成员被引用前执行。
4、静态构造器在任何类的实例变量被 分配之前执行。
下面是实例代码:
namespace 类的构造器3_静态构造器_
{
class Program
{
static void Main(string[] args)
{
a A = new a();
Console.WriteLine(a.i);
//执行结果为先执行静态成员100再执行无参构造器程序
//当第一次执行时,类中的静态构造器先执行后才执行无参构造器,证明静态构造器在实例构造器前执行。
a A1 = new a();//当第二次执行时,类中的静态构造器就不执行了,证明静态构造器最多只执行一次。
}
}
class a
{
public static int i = 100;//为了给这个静态成员初始化,类给这个静态成员自动分配了一个静态构造器
//通过反编译器可以看到。证明:编译器会将静态成员初始化语句转换成赋值语句放在
//静态语句的静太构造器被引用之前执行。
static a()
{
Console.WriteLine("我是静态构造器!");
}
public a()
{
Console.WriteLine("我是无参构造器!");
}
}
}