C 6 0本質論(泛型)

2021-10-07 22:53:59 字數 1122 閱讀 9325

11.2 泛型定義

11.3 約束

11.4 泛型方法

11.4 協變性和逆變性

11.5 泛型例項化

保證型別安全,避免裝箱拆箱及型別轉換

public

struct pair

:ipair

public

t first

public

t second

}

tuple泛型類(元組)

定義 型別引數不支援可變引數,固定數量

類型別約束

類型別約束只能指定乙個

不能指定密封類或不是類的型別

struct/class約束

class

構造器約束

派生類的型別引數需要重新宣告,且約束應相等或更強

泛型方法

通過介面約束或者類型別約束可以限制引數型別具備方法

不同要求之間是and的關係,無法指定or的關係

object、陣列、system.valuetype、system.enum、system.delegate以及system.multicastdelegate不能作為類型別約束的基類

構造器約束只能要求具備預設構造器

//宣告:mathex.max(t1, t2)

mathex.

max(7,

90);//不需要mathex.max(7,90)

public

static t deserialize

<

t>

(stream stream,

iformatter formatter)

c#4.0中泛型介面和委託可以具備協變性

協變的型別引數必須都是引用型別

例如,乙個結構或類實現讀寫介面和唯讀介面

協變性相當於將返回值向上轉型

c#4.0中泛型介面和委託可以具備逆變性

例如,泛型介面的實現類可以逆變為泛型介面的實現類,t派生與u,且t、u用於介面方法的輸入引數且不作為返回值

所有陣列都可以轉換為 ienumerable介面

C 6 0本質論(繼承)

6.1.2 protected 6.1.3 聚合 6.1.4 密封類 6.2 基類的重寫 6.3 抽象類 6.4 system.object 6.5 is as操作符 6.1.1.1 隱式轉換操作符 6.1.1.2 顯式轉換操作符 public class person public string ...

《C 6 0 本質論》 閱讀筆記

閱讀筆記不是講述這本書的內容,只是提取了其中一部分我認為比較重要或者還沒有掌握的知識,所以如果有錯誤或者模糊之處,請指正,謝謝!對於c 6.0才有的新語法基本都有標記,開發的時候要注意使用,以免造成不相容現象。一。第一章 1.控制台中可以使用,其會在每一次輸入的時候獲取鍵盤輸入的值。可以用conso...

《C 6 0 本質論》 閱讀筆記

閱讀筆記不是講述這本書的內容,只是提取了其中一部分我認為比較重要或者還沒有掌握的知識,所以如果有錯誤或者模糊之處,請指正,謝謝!對於c 6.0才有的新語法基本都有標記,開發的時候要注意使用,以免造成不相容現象。一。第一章 1.控制台中可以使用,其會在每一次輸入的時候獲取鍵盤輸入的值。可以用conso...