Static Initialization in C#

答案在 MSDN 裏

靜態構造函數用於初始化任何靜態數據,或用於執行僅需執行一次的特定操作。在創建第一個實例或引用任何靜態成員之前,將自動調用靜態構造函數。

C#  複製代碼 
C# code
?
1
2
3
4
5
6
7
8
class SimpleClass
{
    // Static constructor
    static SimpleClass()
    {
        //...
    }
}


 

靜態構造函數具有以下特點:

靜態構造函數既沒有訪問修飾符,也沒有參數。

在創建第一個實例或引用任何靜態成員之前,將自動調用靜態構造函數來初始化類。 

無法直接調用靜態構造函數。

在程序中,用戶無法控制何時執行靜態構造函數。

靜態構造函數的典型用途是:當類使用日誌文件時,將使用這種構造函數向日志文件中寫入項。

靜態構造函數在爲非託管代碼創建包裝類時也很有用,此時該構造函數可以調用 LoadLibrary 方法。

示例
在此示例中,類 Bus 有一個靜態構造函數和一個靜態成員 Drive()。當調用 Drive() 時,將調用靜態構造函數來初始化類。

C#  複製代碼 
C# code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Bus
{
    // Static constructor:
    static Bus()
    {
        System.Console.WriteLine("The static constructor invoked.");
    }
 
    public static void Drive()
    {
        System.Console.WriteLine("The Drive method invoked.");
    }
}
 
class TestBus
{
    static void Main()
    {
        Bus.Drive();
    }
}


 

輸出
The static constructor invoked. 

The Drive method invoked. 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章