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; }

說明靜態構造函數只執行了一次,並將該實例初始化到了內存中.所以結果會顯示成累加的情況
