|
類的靜態(tài)構(gòu)造函數(shù)也叫類型構(gòu)造器,靜態(tài)構(gòu)造器,他調(diào)用的時刻由CLR來控制:
CLR會選擇如下時間之一來調(diào)用靜態(tài)構(gòu)造函數(shù):
1,在類型的第一個實例創(chuàng)建之前,或類型的非繼承字段或成員第一次訪問之前。這里的“之前”,代表前后銜接的意思。這里的時刻是精確的!
2,在非繼承的靜態(tài)字段或成員第一次訪問之前的某個時刻,具體時刻不定!
由于調(diào)用的時刻不確定,所以我們最好不要編寫依賴于特定的靜態(tài)構(gòu)造函數(shù)的執(zhí)行順序的代碼,這樣很容易產(chǎn)生不可預(yù)料的后果!
下面大家看三個Demo,我們來更加深入的看看靜態(tài)構(gòu)造函數(shù)的一些有趣的行為:
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技術(shù):靜態(tài)構(gòu)造函數(shù)趣談!,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。