您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)C#靜態(tài)構(gòu)造函數(shù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
靜態(tài)構(gòu)造函數(shù)是C#的一個(gè)新特性,其實(shí)好像很少用到。不過(guò)當(dāng)我們想初始化一些靜態(tài)變量的時(shí)候就需要用到它了。這個(gè)構(gòu)造函數(shù)是屬于類(lèi)的,而不是屬于哪里實(shí)例的,就是說(shuō)這個(gè)構(gòu)造函數(shù)只會(huì)被執(zhí)行一次。也就是在創(chuàng)建***個(gè)實(shí)例或引用任何靜態(tài)成員之前,由.NET自動(dòng)調(diào)用。
class SimpleClass { // Static constructor static SimpleClass() { // } }
在使用靜態(tài)構(gòu)造函數(shù)的時(shí)候應(yīng)該注意幾點(diǎn):
1、C#靜態(tài)構(gòu)造函數(shù)既沒(méi)有訪問(wèn)修飾符,也沒(méi)有參數(shù)。因?yàn)槭?NET調(diào)用的,所以像public和private等修飾符就沒(méi)有意義了。
2、是在創(chuàng)建***個(gè)類(lèi)實(shí)例或任何靜態(tài)成員被引用時(shí),.NET將自動(dòng)調(diào)用靜態(tài)構(gòu)造函數(shù)來(lái)初始化類(lèi),也就是說(shuō)我們無(wú)法直接調(diào)用靜態(tài)構(gòu)造函數(shù),也就無(wú)法控制什么時(shí)候執(zhí)行靜態(tài)構(gòu)造函數(shù)了。
3、一個(gè)類(lèi)只能有一個(gè)靜態(tài)構(gòu)造函數(shù)。
4、無(wú)參數(shù)的構(gòu)造函數(shù)可以與靜態(tài)構(gòu)造函數(shù)共存。盡管參數(shù)列表相同,但一個(gè)屬于類(lèi),一個(gè)屬于實(shí)例,所以不會(huì)沖突。
5、最多只運(yùn)行一次。
6、C#靜態(tài)構(gòu)造函數(shù)不可以被繼承。
7、如果沒(méi)有寫(xiě)靜態(tài)構(gòu)造函數(shù),而類(lèi)中包含帶有初始值設(shè)定的靜態(tài)成員,那么編譯器會(huì)自動(dòng)生成默認(rèn)的C#靜態(tài)構(gòu)造函數(shù)。
關(guān)于C#靜態(tài)構(gòu)造函數(shù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。