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...