1、在类实例被初始化的时候执行
2、在类的静态成员被调用的时候执行
3、静态构造函数只会被执行一次,代码如下:
static class Program
{
static void Main(string[] args)
{
Test.TestIns.Flag = Test.TestIns.Flag + 1;
Console.WriteLine(Test.TestIns.Flag);
Test.TestIns.Flag = Test.TestIns.Flag + 1;
Console.WriteLine(Test.TestIns.Flag);
Test.TestIns.Flag = Test.TestIns.Flag + 1;
Console.WriteLine(Test.TestIns.Flag);
Console.ReadKey();
}
}
public class Test
{
static Test()
{
TestIns = new Test();
}
public static Test TestIns;
public int Flag=0;
}
说明静态构造函数只执行了一次,并将该实例初始化到了内存中.所以结果会显示成累加的情况