C#關於泛型
阿新 • • 發佈:2020-06-01
1、泛型(Generic)是c#2.0和通用語言執行時CLR的一個新特性。泛型為.NET的框架引入型別引數(TYPE parameter ),這使得我們在設計類和方法時,不用確定一個或多個具體的引數,其具體的引數可以延遲到客戶的程式碼中去宣告和實現。這避免了執行時型別的轉換或裝箱拆箱操作的效能損耗。
2、泛型的宣告:在方法名後面加上<>就是一個泛型方法。
下面附加一段極其簡單的程式碼,說明一下泛型方法的宣告以及呼叫。
我們在呼叫泛型方法的時候,需要再呼叫時在<>裡面指明是什麼型別。
當然,這種方法在我們方法內部是不安全的,因為我們不知道會傳入什麼型別,所以,我們可以使用一些約束。
例如:
加了約束之後,我們在呼叫時,就只能按照約束傳參了。這樣就提高了安全性。
3、下面圖片中可以看一下關於泛型類或者泛型介面的宣告
4、關於泛型的協變與逆變
協變與逆變只能是在泛型介面或者泛型委託中。
我們先宣告兩個類,分別是Bird,Sparrow:Bird
在分別定義兩個泛型介面分別用in 和out修飾引數介面並實現了他們
接下來就可以看一下關於協變與逆變的程式碼編寫了
如圖以及圖中程式碼備註所示: