靜態構造函數(C#)

https://www.cnblogs.com/jiagoushi/p/3775046.html

靜態構造函數是在構造函數方法前面添加了static關鍵字之後形成的,並且沒有修飾符(public,private),沒有參數。

靜態構造函數的特點如下:

  1. 靜態構造函數既沒有訪問修飾符,也沒有參數。因為是靜態構造函數不是有由程序員調用的,而是由.NET在適當的時機調用的,所以像public和private等修飾符以及參數就沒有意義了。
  2. 靜態構造函數前面必須是static 關鍵字。如果不加這個關鍵字,那就是普通的構造函數了。
  3. 靜態構造函數中不能實例化未用static關鍵字修飾的實例變量。
  4. 靜態函數的調用時機,是在類被實例化或者靜態成員被調用的時候進行調用,並且是由.net框架來調用靜態構造函數來初始化靜態成員變量。
  5. 如果靜態構造函數引發異常,運行時將不會再次調用該構造函數,並且在程序運行所在的應用程序域的生存期內,類型將保持未初始化。
  6. 一個類中只能有一個靜態構造函數。
  7. 無參數的靜態構造函數和無參數的
    構造函數是可以並存的。因為他們一個屬於級別(static修飾),一個屬於實例級別,並不衝突。
  8. 靜態構造函數只會被執行一次。並且是在特點4中的調用時機中進行調用。
  9. 靜態構造函數不可以被繼承。
  10. 如果沒有寫靜態構造函數,而類中包含帶有初始值設定的靜態成員,那麼編譯器會自動生成默認的靜態構造函數。


分享到:


相關文章: