靜態構造函數

靜態構造函數:被自動的調用的,不能被顯示的調用.在調用靜態構造函數後在調用public構造函數。

1、靜態構造函數總是在public構造函數調用之前被CLR自動調用,或者引用類的任何靜態成員之前被自動調用。強調一點:靜態構造 函數只被調用一次。

2、用於對靜態字段,靜態只讀字段等的初始化。只讀字段只能在構造函數中或者初始化時被修改,而靜態只讀字段只能在靜態構造函數或者初始化時被賦值。
 
3、添加static關鍵字,不能添加訪問修飾符,因爲靜態構造函數都是私有的,不能被繼承,它是被CLR自動調用的,不能被顯示的調用。
 
4、如果類中包含用來開始執行的main方法,則該類的靜態構造函數將在調用main方法之前執行。任何帶有初始值設定的靜態字段,則在執行該類的靜態構造函數時,先要按照文本順序執行那些初始值設定項。

6、如果沒有編寫靜態構造函數,而這時類中包含帶有初始值設定的靜態字段,那麼編譯器會自動生成默認的靜態構造函數。
 
使用靜態構造函數還是成員初始化語句?

成員初始化語句在靜態構造函數之前被調用,但是成員初始化語句來初始化靜態成員時有一個弊端:不能捕獲異常,所以在使用的時候有以下的建議:

1、簡單的靜態成員,例如類型爲值類型的,使用成員初始化語句。
 
2、靜態成員成員初始化比較複雜,或者有可能出現異常,那麼用靜態構造函數完成。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章