主是要一個類的虛函數的地址表,這張表解決了繼承、重載的問題,保證其容真實反應實際的函數,這個C++靜態構造函數是屬於類的,而不是屬於哪裡實例的,就是說這個構造函數只會被執行一次。也就是在創建第一個實例或引用任何靜態成員之前,由.NET自動調用。
在使用靜態構造函數的時候應該注意幾點:
1、靜態構造函數既沒有訪問修飾符,也沒有參數。因為是.NET調用的,所以像public和private等修飾符就沒有意義了。
2、是在創建第一個類實例或任何靜態成員被引用時,.NET將自動調用靜態構造函數來初始化類,也就是說我們無法直接調用靜態構造函數,也就無法控制什麼時候執行靜態構造函數了。
3、一個類只能有一個C++靜態構造函數。
4、無參數的構造函數可以與C++靜態構造函數共存。盡管參數列表相同,但一個屬於類,一個屬於實例,所以不會沖突。
5、最多只運行一次。
6、靜態構造函數不可以被繼承。
7、如果沒有寫C++靜態構造函數,而類中包含帶有初始值設定的靜態成員,那麼編譯器會自動生成默認的靜態構造函數。