C#(20)泛型

9yue5

在C#中,任何一個類型直接或者間接繼承于Object。



泛型 Generic

定義:泛型能夠?qū)㈩愋妥鳛閰?shù)來傳遞

創(chuàng)建類型時用一個特定的符號如“T”來作為一個占位符代替實(shí)際的類型

等待在實(shí)例化時再用一個實(shí)際的類型來代替


優(yōu)點(diǎn):1、重用代碼,保護(hù)類型的安全以及提高性能(裝箱拆箱本來就是對性能的消耗)

? ? ? ? ? ?2、 降低強(qiáng)制轉(zhuǎn)換或裝箱操作的成本和風(fēng)險

? ? ? ? ? ?3、可以對泛型參數(shù)進(jìn)行限定以訪問特定數(shù)據(jù)類型的方法


泛型的限制

泛型成員因類型不確定,可能是類、結(jié)構(gòu)體、字符、枚舉……

所以不能使用算術(shù)運(yùn)算符、比較運(yùn)算符等進(jìn)行運(yùn)算;可以使用賦值運(yùn)算符 =


泛型類型參數(shù)


泛型類型參數(shù)可以是編譯器識別的任何數(shù)據(jù)類型

泛型類型參數(shù)命名也要遵守命名規(guī)則

1. 泛型類型參數(shù)可以有多個

2. 泛型類型參數(shù)可以是編譯器識別的任何數(shù)據(jù)類型

3. 泛型類型參數(shù)命名需要遵守命名規(guī)則

(1) 使用描述性名稱命名泛型類型,并且使用T作為前綴

(2) 單個字母名稱完全可以讓人了解其表示的含義使用單個大寫字母命名


泛型類型參數(shù)的約束


約束的好處?

可以增加約束類型及其繼承層次結(jié)構(gòu)中的所有類型所支持的允許操作和方法調(diào)用的數(shù)量

null 是空的引用 (空對象),值類型比較為false??

引用類型比較恒等空的話 為0,不恒等為false


泛型類寫在<>后面{}前面

方法中寫在()后

注:提示:由于在泛型當(dāng)中需要比較大小,所以該泛型必須是實(shí)現(xiàn)了接口(IComparable)


泛型方法


泛型方法是使用泛型類型參數(shù)聲明的方法,

當(dāng)方法中存在某些參數(shù)的類型不明確的時候就可以使用泛型方法。

未知具體類型的參數(shù)就使用泛型類型參數(shù)替代。

? ? ? ? ? ?泛型方法重載

泛型類


泛型類封裝了不是特定于具體數(shù)據(jù)類型的操作,

當(dāng)類中存在未知參數(shù)類型的時候就可以使用泛型類

泛型類最常用于集合。 從集合中添加和移除項這樣的操作都以大體上相同的方式執(zhí)行,與所存儲數(shù)據(jù)的類型無關(guān)。


創(chuàng)建泛型類的過程為:從一個現(xiàn)有的具體類開始,

逐一將每個類型更改為類型參數(shù),直至達(dá)到通用化和可用性的最佳平衡。


泛型類實(shí)例化:

泛型類設(shè)計規(guī)則(怎么用泛型類)

1. 將哪些類型通用化為泛型類型參數(shù)

2. 如果存在約束,應(yīng)對泛型類型參數(shù)應(yīng)用什么約束

3. 是否將泛型行為分解為基類和子類

4. 是否實(shí)現(xiàn)一個或多個泛型接口

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • object 變量可指向任何類的實(shí)例,這讓你能夠創(chuàng)建可對任何數(shù)據(jù)類型進(jìn)程處理的類。然而,這種方法存在幾個嚴(yán)重的問題...
    CarlDonitz閱讀 1,018評論 0 5
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,169評論 1 10
  • 前言 人生苦多,快來 Kotlin ,快速學(xué)習(xí)Kotlin! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,669評論 9 118
  • 感謝毛婆婆一時腦熱發(fā)起的“每天讀書一小時”計劃,這是要幫助姨媽徹底根治懶癌晚期啊。更感謝毛婆婆同意陪娃讀繪本也算完...
    田西閱讀 561評論 0 0
  • 五月的太陽依然那么炙熱多情,懶洋洋的躺在天上看著地上忙碌的人們,日復(fù)一日,一成不變。尤其是高三,整天重復(fù)著上課,下...
    一碗鍋包肉閱讀 317評論 0 0

友情鏈接更多精彩內(nèi)容