1、定义:
静态构造函数是实现对一个类进行初始化的方法成员. 它一般用于对静态数据的初始化. 静态构造函数不能有参数,不能有修饰符而且不能被调用,当类被加载时,类的静态构造函数自动被调用.
2、特点:
在一个程序的执行过程中,静态构造器最多只执行一次.
3、执行顺序:
- 静态构造器在任何类的静态成员被引用之前执行.
- 静态构造器在任何类的实例变量被分配之前执行.
- 静态构造器在类的静态成员初始化之后执行.或者说编译器会将静态成员初始化语句转换成赋值语句放在静态构造器执行的最开始.
4、实例:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("静态变量值 = " + Person.time);
Person p1 = new Person();
Thread.Sleep(10);
Person p2 = new Person();
Console.ReadKey();
}
}
class Person
{
public static int time = DateTime.Now.Millisecond;
static Person()
{
Thread.Sleep(10); // 防止电脑运行太快,看不出效果
Console.WriteLine("静态构造器 = " + DateTime.Now.Millisecond);
}
public Person()
{
Console.WriteLine("无参构造器 = " + DateTime.Now.Millisecond);
}
}
5、运行结果:

可以看出:
1、静态变量是最先初始化的
2、静态构造函数里面其他的内容是在静态变量初始化好之后才执行的
3、静态构造函数永远只执行一次
6、上面程序的静态构造函数类似这样执行的
static Person()
{
public static int time = DateTime.Now.Millisecond;
Thread.Sleep(10); // 防止电脑运行太快,看不出效果
Console.WriteLine("静态构造器 = " + DateTime.Now.Millisecond);
}
7、参考
http://www.cnblogs.com/JackieYang/archive/2010/02/23/1671724.html ymingkm
作者:MrZivChu
2013-08-02 17:15:25
来源:https://www.cnblogs.com/MrZivChu/p/BaseKnowledge_staticConstructor.html