泛型
泛型(C#2.0):
泛型是程式設計語言的一種特性,允許程式員在強型別程式設計語言中撰寫代碼時定義一些可變部分,那些部分在使用前必須作出指明,各種程式設計語言和其編譯器、運行環境對泛型的支持均不一樣,將型別引數化以達到代碼復用提高軟體開發作業效率的一種資料型別,泛型類是參考型別,是堆物件,主要是引入了型別引數這個概念,
優點:
1.使用泛型類、方法,我們可以極大提高代碼的重用性,不需要對型別不同代碼相同(僅型別引數不同)的代碼寫多次,
2.創建泛型類,可在編譯時創建型別安全的集合
3.避免裝箱和拆箱操作降低性能,在大型集合中裝箱和拆箱的影響非常大.
泛型約束:
where T: struct
型別引數必須是值型別,可以指定除 Nullable 以外的任何值型別,有關更多資訊,請參見使用可以為 null 的型別(C# 編程指南),
where T : class
型別引數必須是參考型別;這一點也適用于任何類、介面、委托或陣列型別,
where T:new()
型別引數必須具有無引數的公共建構式,當與其他約束一起使用時,new() 約束必須最后指定,
where T:<基類名>
型別引數必須是指定的基類或派生自指定的基類,
where T:<介面名稱>
型別引數必須是指定的介面或實作指定的介面,可以指定多個介面約束,約束介面也可以是泛型的,
where T:U
為 T 提供的型別引數必須是為 U 提供的引數或派生自為 U 提供的引數,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/166426.html
標籤:其他
