泛型是指那些處理不同類型值的類和方法泛型的討論是一個比較高級的主題雖然有些泛型較高級而有些相當簡單事實上在購物車中已經使用了泛型的一個特性回憶一下CartItem和ShoppingCart(使用CartItem作為一個集合)這兩個類如何組成了購物車
本章前面介紹的許多集合都提供了對象(Object類型)的存儲空間由於它們用於處理Object數據類型因此實際上集合可以保存任何數據類型然而在從集合中取出記錄項時它們通常需要從Object數據類型轉換成簡單數據類型這包括進行額外的編碼和簡化性能另一個問題是由於集合可以保存任何數據類型也就是說可以在集合中保存任何數據類型如果使用一個集合來保存CartItem對象實際上就可以在同一個集合中保存字符串數字日期等數據類型例如
Dim _items As New List()
Dim item As New CartItem()
_itemsAdd(item)
_itemsAdd(this isnt a cart item)
_items
Add(
)
在從集合中取出記錄項時您並不知道它是何種數據類型除非您在輸入到列表中時記錄了它是哪個對象
為了解決這個問題可以使用泛型或更加明確的泛型集合它們都被保存在SystemCollectionsGeneric命名空間中購物車使用的其中一個就是List:
Private _items As List(Of CartItem)該語句簡單聲明了少_items是一個List但它只是CartItem對象的一個列表因此現在可以執行
Dim _items As New List()
Dim item As New CartItem(…)
_itemsAdd(item)
但由於該列表是一個明確的數據類型因此不能執行以下操作
_itemsAdd(this isnt a cart item)
_itemsAdd()
這兩行代碼都會產生編譯時錯誤無論何時在需要一個自定義類的集合時最好使用泛型集合因為它們提高了代碼的可讀性減少了潛在的錯誤並且提供了比標准集合更好的性能
ASPNET 入門教程完整版
From:http://tw.wingwit.com/Article/program/net/201311/15187.html