•靜態構造函數既沒有訪問修飾符,也沒有參數。
•如果沒有編寫靜態構造函數,而這時類中包含帶有初始值設定的靜態字段,那麼編譯器會自動生成默認的靜態構造函數。
•在創建第一個類實例或任何靜態成員被引用時,.NET將自動調用靜態構造函數來初始化類,也就是說我們無法直接調用靜態構造函數,也就無法控制什麼時候執行靜態構造函數了。
•如果類中包含用來開始執行的 Main 方法,則該類的靜態構造函數將在調用 Main 方法之前執行。
•如果類中的靜態字段帶有初始化,則靜態字段的初始化語句將在靜態構造函數之前運行。
•一個類只能有一個靜態構造函數。
•無參數的構造函數可以與靜態構造函數共存。盡管參數列表相同,但一個屬於類,一個屬於實例,所以不會沖突。
•最多只運行一次。
•靜態構造函數不可以被繼承。
•示例代碼如下:
運行的結果是:
static A()
static B()
X=1,Y=2