第二十節(jié) 泛型、partial類、枚舉、結(jié)構(gòu)
視頻鏈接:劉鐵猛老師的《C#語(yǔ)言入門(mén)詳解》
https://www.youtube.com/watch?v=EgIbwCnQ680&list=PLZX6sKChTg8GQxnABqxYGX2zLs4Hfa4Ca

泛型(generic)

泛型類示例
示例: 既不產(chǎn)生類型膨脹,也不產(chǎn)生成員膨脹。


泛型接口示例
示例1:一個(gè)類要實(shí)現(xiàn)泛型接口,那么該類必須是泛型類。

示例2:如果一個(gè)類實(shí)現(xiàn)了一個(gè)確定類型的泛型接口,那么這個(gè)類可以不是泛型類。

示例3:C#自定義的一些泛型類、接口:集合等。


泛型方法示例
示例:這個(gè)算法作用將2個(gè)整型數(shù)組合并成一個(gè)數(shù)組


對(duì)比:上面如果要實(shí)現(xiàn)double類型的合并的話,必須添加新的double類型的Zip方法,導(dǎo)致了方法成員膨脹。
使用泛型方法解決。

泛型委托示例 Action<>、Func<>、與Lambda表達(dá)式的配合使用
示例1:Action<>,只能去引用沒(méi)有返回值的方法


示例2: Func<>,去引用有返回值類型的方法

示例3:泛型委托與Lambda表達(dá)式的配合使用


partial類
C#允許把一個(gè)類分成兩部分或多部分編寫(xiě),而且每個(gè)部分都可以以自己的速度進(jìn)行版本更新。可以減少類的派生
這個(gè)partial類允許用不同語(yǔ)言寫(xiě),例如:C#和XAML語(yǔ)言寫(xiě)同一個(gè)類,WPF示例。

枚舉類型
示例1:


示例2:比特位用法


判斷person會(huì)不會(huì)做飯

結(jié)構(gòu)體
結(jié)構(gòu)體是一種值類型。copy對(duì)象的時(shí)候,copy完整的對(duì)象。
結(jié)構(gòu)體不能由class,struct派生而來(lái),只能由接口派生
結(jié)構(gòu)體不能創(chuàng)建無(wú)參的構(gòu)造方法。
創(chuàng)建實(shí)例對(duì)象在棧上,創(chuàng)建的實(shí)例也存放在棧上。不像類的創(chuàng)建的實(shí)例(new Person();)在堆上
示例1:裝箱/拆箱


示例2:不像class對(duì)象copy,而是整個(gè)對(duì)象的內(nèi)存都復(fù)制了。



浙公網(wǎng)安備 33010602011771號(hào)