標籤:VB.NET

泛型是一種特殊的類型,它把指定類型的工作推遲到客戶端代碼聲明並實例化類或方法的時候進行。

1簡介

泛型的定義
泛型的定義主要有以下兩種:
在程序編碼中一些包含類型參數的類型,也就是說泛型的參數只可以代表類,不能代表個別對象。(這是當今較常見的定義)在程序編碼中一些包含參數的類。其參數可以代表類或對象等等。(現在人們大多把這稱作模板)不論使用哪個定義,泛型的參數在真正使用泛型時都必須作出指明。
一些強類型編程語言支援泛型,其主要目的是加強類型安全及減少類轉換的次數,但一些支持泛型的編程語言只能達到部分目的。

2編程語言的泛型特性

Java 的泛型
Java 泛型的參數只可以代表類,不能代表個別對象。由於 Java 泛型的類型參數之實際類型在編譯時會被消除,所以無法在運行時得知其類型參數的類型。Java 編譯器在編譯泛型時會自動加入類型轉換的編碼,故運行速度不會因為使用泛型而加快。Java 允許對個別泛型的類型參數進行約束,包括以下兩種形式(假設 T 是泛型的類型參數,C 是一般類、泛類,或是泛型的類型參數):T 實現介面 I 。T 是 C ,或繼承自 C 。一個泛型類不能實現Throwable介面。
泛型簡介
泛型是c#2.0的一個新增加的特性,它為使用c#語言編寫面向對象程序增加了極大的效力和靈活性。不會強行對值類型進行裝箱和拆箱,或對引用類型進行向下強制類型轉換,所以性能得到提高。通過知道使用泛型定義的變數的類型限制,編譯器可以在一個高得多的程度上驗證類型假設,所以泛型提高了程序的類型安全。它允許程序員將一個實際的數據類型的規約延遲至泛型的實例被創建時才確定。泛型為開發者提供了一種高性能的編程方式,能夠提高代碼的重用性,並允許開發者編寫非常優雅的解決方案。

C#編程介紹

泛型類和泛型方法同時具備可重用性、類型安全和效率,這是非泛型類和非泛型方法無法具備的。泛型通常用與集合以及作用於集合的方法一起使用。.NET Framework 2.0 版類庫提供一個新的命名空間 System.Collections.Generic,其中包含幾個新的基於泛型的集合類。建議面向 2.0 版的所有應用程序都使用新的泛型集合類,而不要使用舊的非泛型集合類,如 ArrayList。有關更多信息,請參見 .NET Framework 類庫中的泛型(C# 編程指南)。
當然,也可以創建自定義泛型類型和方法,以提供自己的通用解決方案,設計類型安全的高效模式。下面的代碼示例演示一個用於演示用途的簡單泛型鏈接列表類。(大多數情況下,應使用 .NET Framework 類庫提供的 List<(Of <(T>)>) 類,而不是自行創建類。)在通常使用具體類型來指示列表中存儲的項的類型的場合,可使用類型參數 T。其使用方法如下:
AddHead方法中作為方法參數的類型。
Node嵌套類中作為公共方法GetNextData屬性的返回類型。
在嵌套類中作為私有成員數據的類型。
注意,T 可用於 Node 嵌套類。如果使用具體類型實例化 GenericList<T>(例如,作為 GenericList<int>),則所有的 T 都將被替換為 int。
// type parameter T in angle bracketspublicclass
下面的代碼示例演示客戶端代碼如何使用泛型 GenericList<T> 類來創建整數列表。只需更改類型參數,即可方便地修改下面的代碼示例,創建字元串或任何其他自定義類型的列表:
class TestGenericList{ staticvoid Main()

相關評論

同義詞:暫無同義詞