|
類的靜態(tài)構造函數也叫類型構造器,靜態(tài)構造器,他調用的時刻由CLR來控制:
CLR會選擇如下時間之一來調用靜態(tài)構造函數:
1,在類型的第一個實例創(chuàng)建之前,或類型的非繼承字段或成員第一次訪問之前。這里的“之前”,代表前后銜接的意思。這里的時刻是精確的!
2,在非繼承的靜態(tài)字段或成員第一次訪問之前的某個時刻,具體時刻不定!
由于調用的時刻不確定,所以我們最好不要編寫依賴于特定的靜態(tài)構造函數的執(zhí)行順序的代碼,這樣很容易產生不可預料的后果!
下面大家看三個Demo,我們來更加深入的看看靜態(tài)構造函數的一些有趣的行為:
Demo1:
static void Main(string[] args)
{
Console.WriteLine(B.strText);
}
public class A
{
public static string strText;
static A()
{
strText = "aaaa";
}
}
public class B : A
{
static B()
{
strText = "bbbb";
}
}
NET技術:靜態(tài)構造函數趣談!,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。