c# 值類(lèi)型實(shí)例構(gòu)造器
更新時(shí)間:2012年10月29日 13:53:09 作者:
CLR總是允許創(chuàng)建值類(lèi)型的實(shí)例。另外值類(lèi)型不一定需要定義構(gòu)造器,c#編譯器不會(huì)為值類(lèi)型生成默認(rèn)的無(wú)參構(gòu)造器
引用類(lèi)型包含值類(lèi)型字段,引用類(lèi)型初始化后,值類(lèi)型默認(rèn)會(huì)被初始化為0、Null。
CLR允許為值類(lèi)型定義構(gòu)造器,但是構(gòu)造器的調(diào)用,就必須顯式的寫(xiě)代碼來(lái)調(diào)用它們。
CLR不允許為值類(lèi)型定義無(wú)參構(gòu)造器。只能定義有參構(gòu)造器,并且構(gòu)造器中必須為值類(lèi)型中的所有字段全部賦值,否則報(bào)錯(cuò)。
c#中雖然沒(méi)有無(wú)參構(gòu)造器,但是可以使用這個(gè)語(yǔ)法初始化在內(nèi)部的字段:
StructType st = new StructType();//為內(nèi)部字段初始化0或者null
所以對(duì)定義有參構(gòu)造器的參考寫(xiě)法:
public StructType(int x){ //定義有參構(gòu)造器
this = new StructType();//將所有的字段初始化為0或者Null
m_x = x;//用參數(shù)x覆蓋m_x字段,m_x已被上句話初始化為0
}
CLR允許為值類(lèi)型定義構(gòu)造器,但是構(gòu)造器的調(diào)用,就必須顯式的寫(xiě)代碼來(lái)調(diào)用它們。
CLR不允許為值類(lèi)型定義無(wú)參構(gòu)造器。只能定義有參構(gòu)造器,并且構(gòu)造器中必須為值類(lèi)型中的所有字段全部賦值,否則報(bào)錯(cuò)。
c#中雖然沒(méi)有無(wú)參構(gòu)造器,但是可以使用這個(gè)語(yǔ)法初始化在內(nèi)部的字段:
StructType st = new StructType();//為內(nèi)部字段初始化0或者null
所以對(duì)定義有參構(gòu)造器的參考寫(xiě)法:
復(fù)制代碼 代碼如下:
public StructType(int x){ //定義有參構(gòu)造器
this = new StructType();//將所有的字段初始化為0或者Null
m_x = x;//用參數(shù)x覆蓋m_x字段,m_x已被上句話初始化為0
}
相關(guān)文章
Unity實(shí)現(xiàn)簡(jiǎn)單的虛擬搖桿
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡(jiǎn)單的虛擬搖桿,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04Unity讀取Excel文件轉(zhuǎn)換XML格式文件
這篇文章主要為大家詳細(xì)介紹了Unity讀取Excel文件轉(zhuǎn)換XML格式文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06C#之如何實(shí)現(xiàn)多個(gè)子窗體切換效果
這篇文章主要介紹了C#之如何實(shí)現(xiàn)多個(gè)子窗體切換的效果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Unity實(shí)現(xiàn)卡牌翻動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)卡牌翻動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02