淺談C# 構(gòu)造方法(函數(shù))
一、概括
1.通常創(chuàng)建一個(gè)對(duì)象的方法如圖:

通過(guò) Student tom = new Student(); 創(chuàng)建tom對(duì)象,這種創(chuàng)建實(shí)例的形式被稱為構(gòu)造方法。
簡(jiǎn)述:用來(lái)初始化對(duì)象的,為類的成員賦值。
2.構(gòu)造方法特點(diǎn)
a.方法名與類名相同;
b.沒有返回值類型;
c.必須要通過(guò)new的形式調(diào)用;
3.語(yǔ)法
訪問(wèn)修飾符 類名([參數(shù)])
{
方法體
}
二、 無(wú)參構(gòu)造方法
1.在默認(rèn)情況下,系統(tǒng)將會(huì)給類分配一個(gè)無(wú)參構(gòu)造方法,并且沒有方法體。
通過(guò)反編譯工具看出:

我們也可以自定義一個(gè)無(wú)參構(gòu)造方法,在無(wú)參構(gòu)造方法中對(duì)類的屬性進(jìn)行賦值等操作。
三、帶參構(gòu)造方法
如果僅僅局限于無(wú)參構(gòu)造方法,那么屬性賦值是固定的,沒有對(duì)外的可變性。有了參數(shù),給予可以根據(jù)業(yè)務(wù)邏輯,去針對(duì)性的賦值操作。

四、構(gòu)造方法可以形成方法的重載

五、強(qiáng)制使用有參構(gòu)造方法
上面描述了,系統(tǒng)在類沒有構(gòu)造方法的時(shí)候,會(huì)生成一個(gè)無(wú)參構(gòu)造方法。一旦我們?cè)陬愔芯帉懥藰?gòu)造方法,那么這個(gè)自動(dòng)生成的無(wú)參構(gòu)造函數(shù)就不會(huì)生成。根據(jù)此特性,我們可以只定義有參構(gòu)造方法,因此在創(chuàng)建對(duì)象的時(shí)候,就只能賦值使用有參的構(gòu)造方法。

構(gòu)造方法具有強(qiáng)制性的特點(diǎn)。
六、構(gòu)造方法的復(fù)用
1.遵循面向?qū)ο笏枷耄虼宋覀儗懘a的時(shí)候應(yīng)該減少冗余,增強(qiáng)復(fù)用性。構(gòu)造方法復(fù)用形式如下:

用”:this”調(diào)用自身其他構(gòu)造方法。
2.this關(guān)鍵字
a.當(dāng)成員變量和局部變量重名時(shí)使用this區(qū)分。
b.this表示當(dāng)前類的對(duì)象,用于訪問(wèn)該類的成員變量或方法。
七、對(duì)象初始化器
1.初始化對(duì)象的形式
a.常規(guī)的“”對(duì)象名.屬性名=值;“”
b.構(gòu)造方法;
c.對(duì)象初始化器;
2.實(shí)現(xiàn)形式:

3.描述
對(duì)象初始化器是一種初始化對(duì)象的形式,本質(zhì)上其實(shí)就是一種語(yǔ)法糖。它不具有像構(gòu)造方法那樣的強(qiáng)制性,在為屬性賦值的時(shí)候不用遵守賦值的順序和數(shù)量。

4.對(duì)象初始化器與構(gòu)造方法的異同點(diǎn)
a.構(gòu)造方法具有強(qiáng)制性,對(duì)象初始化器沒有強(qiáng)制性。構(gòu)造方法本質(zhì)上是一種特性的方法,所有就要遵循方法的調(diào)用邏輯。
b.對(duì)象初始化器功能單一,只能完成對(duì)象屬性初始化。而構(gòu)造方法可以在方法體中靈活的分配,如對(duì)象創(chuàng)建時(shí)讀取文件等需求。
c.順序的不同,對(duì)象初始化器是在調(diào)用了構(gòu)造方法才執(zhí)行的屬性賦值。而構(gòu)造方法在new 的時(shí)候進(jìn)行調(diào)用,并且邏輯代碼都是在類里面的。
以上就是淺談C# 構(gòu)造方法(函數(shù))的詳細(xì)內(nèi)容,更多關(guān)于C# 構(gòu)造方法(函數(shù))的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用C# Winform應(yīng)用程序獲取網(wǎng)頁(yè)源文件的解決方法
本篇文章是對(duì)使用C# Winform應(yīng)用程序獲取網(wǎng)頁(yè)源文件的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C#使用正則表達(dá)式實(shí)現(xiàn)首字母轉(zhuǎn)大寫的方法
這篇文章主要介紹了C#使用正則表達(dá)式實(shí)現(xiàn)首字母轉(zhuǎn)大寫的方法,涉及C#基于正則表達(dá)式操作字符串的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
詳解C#應(yīng)用程序如何實(shí)現(xiàn)多屏顯示
這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)把主屏運(yùn)行程序中多個(gè)窗體移動(dòng)到各個(gè)擴(kuò)展屏幕位置顯示,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-05-05
C#使用OpenCvSharp4庫(kù)讀取電腦攝像頭數(shù)據(jù)并實(shí)時(shí)顯示
OpenCvSharp4庫(kù)是一個(gè)基于.Net封裝的OpenCV庫(kù),本文主要給大家介紹了C#使用OpenCvSharp4庫(kù)讀取電腦攝像頭數(shù)據(jù)并實(shí)時(shí)顯示的詳細(xì)方法,感興趣的朋友可以參考下2024-01-01
WPF利用TabControl控件實(shí)現(xiàn)拖拽排序功能
在UI交互中,拖拽操作是一種非常簡(jiǎn)單友好的交互,這篇文章主要為大家介紹了WPF如何利用TabControl控件實(shí)現(xiàn)拖拽排序功能,需要的小伙伴可以參考一下2023-10-10
C# wpf 實(shí)現(xiàn)窗口任意區(qū)域點(diǎn)擊拖動(dòng)
在wpf要實(shí)現(xiàn)此功能簡(jiǎn)單形式還是比較容易的,但是有一些細(xì)節(jié)需要專門處理,比如與按鈕的點(diǎn)擊事件沖突問(wèn)題,解決事件沖突問(wèn)題后拖動(dòng)的靈敏度,可復(fù)用性等,這篇文章主要介紹了C# wpf 實(shí)現(xiàn)窗口任意區(qū)域點(diǎn)擊拖動(dòng),需要的朋友可以參考下2024-03-03

