新聞中心
C#3.0中加入的對(duì)象構(gòu)造者特性,使得C#對(duì)象初始化工作變得格外簡(jiǎn)單,我們可以采用類似于數(shù)組初始化的方式來(lái)初始化類的對(duì)象,方法就是直接在創(chuàng)建類對(duì)象的表達(dá)式后面跟上類成員的初始化代碼。

創(chuàng)新互聯(lián)專注于翠屏網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供翠屏營(yíng)銷型網(wǎng)站建設(shè),翠屏網(wǎng)站制作、翠屏網(wǎng)頁(yè)設(shè)計(jì)、翠屏網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造翠屏網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供翠屏網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
以前我們?cè)诼暶鲾?shù)組時(shí),可以同時(shí)對(duì)其進(jìn)行初始化,這樣就省去了很多麻煩,但是在創(chuàng)建類的對(duì)象時(shí),這招可就不靈了,我們要么調(diào)用該類的構(gòu)造函數(shù)完成C#對(duì)象初始化,要么就手工進(jìn)行初始化。這兩種方法都不太方便,使用構(gòu)造函數(shù)來(lái)對(duì)對(duì)象進(jìn)行初始化時(shí),我們?yōu)榱四撤N靈活性,可能需要編寫構(gòu)造函數(shù)的多個(gè)重載版本,實(shí)在是麻煩。
具體示例如下:
- classPoint
- {
- publicintX{get;set;}
- publicintY{get;set;}
- publicoverridestringToString()
- {
- return"("+X.ToString()+","+Y.ToString()+")";
- }
- }
- classRectangle
- {
- publicPointP1{get;set;}
- publicPointP2{get;set;}
- publicRectangle()
- {
- P1=newPoint();
- P2=newPoint();
- }
- publicoverridestringToString()
- {
- return"P1:"+P1+",P2:"+P2;
- }
- }
- classObjectBuilder:AppRunner.AbstractApplication
- {
- publicoverridevoidRun()
- {
- PointthePoint=newPoint(){X=1,Y=2};
- Console.WriteLine("Point(X,Y)={0}",thePoint);
- RectangletheRectangle=newRectangle(){
- P1={X=1,Y=1},P2={X=100,Y=200}
- };
- Console.WriteLine(theRectangle);
- }
- }
我們?cè)诙xPoint類的X和Y屬性時(shí),只須寫上該屬性的get和set訪問(wèn)器聲明,C#編譯器會(huì)自動(dòng)為我們生成默認(rèn)的get和set操作代碼,當(dāng)我們需要定義簡(jiǎn)單屬性時(shí),這個(gè)特性非常有用。
我們以new Point() { X = 1, Y = 2 }語(yǔ)句,輕松的完成了對(duì)Point類的初始化工作。在創(chuàng)建類的對(duì)象時(shí),我們可以按照需要去初始化類的對(duì)象,只要在類的創(chuàng)建表達(dá)式后跟上要初始化屬性的列表即可,且可以只對(duì)需要初始化的屬性賦初值,而無(wú)需把所有屬性的初始值都寫上去。
在theRectangle對(duì)象的初始化表達(dá)式中,我們首先對(duì)P1屬性進(jìn)行初始化,然而P1屬性也是一個(gè)自定義的類型,所以P1屬性的初始化是另一個(gè)類型(Point)的初始化表達(dá)式,我們可以這樣的方式來(lái)對(duì)更加復(fù)雜的類型進(jìn)行初始化。以上介紹C#對(duì)象初始化。
【編輯推薦】
- 介紹Mono C#編譯器
- C#運(yùn)算符重載學(xué)習(xí)總結(jié)
- 概述C#語(yǔ)言的結(jié)構(gòu)體
- C#遺傳算法學(xué)習(xí)筆記
- 討論C#分部方法
分享文章:C#對(duì)象初始化學(xué)習(xí)總結(jié)
鏈接地址:http://www.dlmjj.cn/article/djhcjjj.html


咨詢
建站咨詢
