C#靜態類的構造函數


靜態構造函數是屬於類的,而不是屬於哪個實例的,就是說這個構造函數只會被執行一次。也就是在創建第一個實例或引用任何靜態成員之前,由.NET自動調用。

1.靜態構造函數static定義,無訪問修飾符,無參數,無返回類型。因為是.NET調用的,所以像public和private等修飾符就沒有意義了。

class test   
        {   
            /// <summary>   
            /// 靜態構造函數/類構造函數   
            /// </summary>   
            static test()   
            {   
            }   
        }  

  

2、是在創建第一個類實例或任何靜態成員被引用時,.NET將自動調用靜態構造函數來初始化類,也就是說我們無法直接調用靜態構造函數,也就無法控制什么時候執行靜態構造函數了。

3、一個類只能有一個靜態構造函數。

4、無參數的構造函數可以與靜態構造函數共存。盡管參數列表相同,但一個屬於類,一個屬於實例,所以不會沖突。

5、最多只運行一次。

6、靜態構造函數不可以被繼承。

7、如果沒有寫靜態構造函數,而類中包含帶有初始值設定的靜態成員,那么編譯器會自動生成默認的靜態構造函數。

  無靜態構造函數,類中有靜態成員聲明但是未進行初始化,則不會生成默認的靜態構造函數;(http://blog.csdn.net/gxmark/article/details/6513752)

靜態代碼塊只在第一次使用的時候調用,只調用1次;

靜態構造函數在其他構造函數之前調用;調用順序:

靜態變量初始化--》靜態構造函數--》成員變量初始化--》普通構造函數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM