static 靜態構造函數,
1、用於對靜態數據的初始化
2、前面不能有參數不能有修飾符,不能被調用
3、當類被加載時,類的靜態構造函數自動被調用,最多隻執行一次
class Program { private static int count = 0; static Program() { Console.WriteLine("我是靜態構造函數,我被加載了!"); count++; Console.WriteLine(count); } public Program() { Console.WriteLine("我是公共構造函數,我被加載了!"); count++; } static void Main(string[] args) { Program o1 = new Program();//在此處兩個構造函數都調用 Console.WriteLine("----------"); Program o2 = new Program();//只調用第二個構造函數 Console.WriteLine(count); Console.Read(); } } /* 代碼運行結果: 我是靜態構造函數,我被加載了! 1 我是公共構造函數,我被加載了! ---------- 我是公共構造函數,我被加載了! 3 */
還有就是關於構造函數前面不能有訪問修飾符,默認的是public,如果改爲private和protected之類的修飾符的話是不行,因爲private的訪問權限只能使本類中,這就說明了如果外部要實例化此類的一個對象的話就不行了,其他的同理。