C# 靜態(tài)構(gòu)造函數(shù)
使用類中的靜態(tài)成員時(shí),需要預(yù)先初始化這些成員。在聲明時(shí),可以給靜態(tài)成員提供一個(gè)初始值,但有時(shí)需要執(zhí)行更復(fù)雜的初始化操作,或者在賦值、執(zhí)行靜態(tài)方法之前執(zhí)行某些操作。
使用靜態(tài)構(gòu)造函數(shù)可以執(zhí)行此類初始化任務(wù)。一個(gè)類只能有一個(gè)靜態(tài)構(gòu)造函數(shù),該構(gòu)造函數(shù)不能有訪問(wèn)修飾符,也不能帶任何參數(shù)。靜態(tài)構(gòu)造函數(shù)不能直接調(diào)用,只能在下述情況下執(zhí)行:
1.創(chuàng)建包含靜態(tài)構(gòu)造函數(shù)的類實(shí)例時(shí)
2.訪問(wèn)包含靜態(tài)構(gòu)造函數(shù)的類的靜態(tài)成員時(shí)
這兩種情況下,會(huì)首先調(diào)用靜態(tài)構(gòu)造函數(shù),之后實(shí)例化類或訪問(wèn)靜態(tài)成員。無(wú)論創(chuàng)建了多少個(gè)類實(shí)例,其靜態(tài)構(gòu)造函數(shù)都只調(diào)用一次。為了區(qū)分靜態(tài)構(gòu)造函數(shù)和構(gòu)造函數(shù),也將所有非靜態(tài)構(gòu)造函數(shù)稱為實(shí)例構(gòu)造函數(shù)。
點(diǎn)擊加載更多評(píng)論>>