<a href="http://www.cnblogs.com/ybhcolin/archive/2010/09/24/1834219.html">c#類的初始化順序</a>
類在初始化時的執行順序,依次如下:
1: 子類靜态變量
2: 子類靜态構造函數
3: 子類非靜态變量
4: 父類靜态變量
5: 父類靜态構造函數
6: 父類非靜态變量
7: 父類構造函數
8: 子類構造函數
對于靜态變量與靜态構造函數而言, 無論對一個類建立多少個執行個體,它的靜态成員都隻有一個副本。 也就是說,靜态變量與靜态構造函數隻初始化一次(在類第一次執行個體化時)
以下代碼:
1 class Class1
2 {
3 public static int Count = 0;
4 static Class1()
5 {
6 Count++;
7 }
8 public Class1()
9 {
10 Count++;
11 }
12 }
執行個體化代碼:
1 Class1 c = new Class1();
2 Class1 cc = new Class1();
3 Console.WriteLine(Class1.Count.ToString());
4 Console.Read();
當弟一次執行個體化時, Count值變成2, 當第二次執行個體化時, 則不會執行靜态構造函數與靜态變量. 此時Count的值變成3. 是以,最後結果Count值為3
View Code