1. 程式人生 > >關於泛型的基本概念

關於泛型的基本概念

最近都沒整麼寫部落格了,想了想還是寫一篇!

List<T>


1:泛型概述

泛型主要提高了程式碼的重用性,例如,可以將泛型看成是一個可回收的箱子,如果在箱子上面貼上蘋果的標籤,那麼該箱子就可以用來運送蘋果,
如果給箱子貼上西瓜的標籤,那麼該箱子就可以用來運送西瓜。

2:泛型引數 T

泛型引數T可以看做是一個佔位符,它不是一種型別,它僅僅代表了某種可能的型別,型別引數T可以在使用時用型別來代替
3:泛型引數命名準則:

(1)使用描述性名稱命名泛型型別引數,除非單個字母名稱完全可以讓人瞭解它表示的意義,而描述性名稱沒有更多的意義。
比如:public interface(介面關鍵字) ISessionChannel<Session> //泛型介面
public delegate(委託關鍵字) TOutput<Input,OutPut> //定義一個委託

泛型介面:
interface [介面名稱]<T>
{
【介面體】
}

宣告泛型介面時,與一般介面的唯一區別就是增加了一個<T>,一般來說,申明泛型介面和宣告非泛型介面遵循相同的規則,泛型型別宣告所
實現的介面必須對所有可能的構造型別都保持唯一,否則就無法確定該為某些構造型別呼叫哪個方法

關於引數T
1:T:結構---型別引數必須是值型別,可以指定除了Nullable意外的任何值型別
2:T:類---型別引數必須是引用型別
3:new()----型別引數必須具有無引數的公共建構函式,當與其它一起使用時,new()約束必須最後指定
4:T:<介面名稱> 型別引數必須是指定的介面或者實現指定的介面,可以指定多個介面約束,約束也可以是泛型的

泛型方法:
泛型方法的宣告形式:
【修飾符】 [返回型別] 方法名<引數T>()
{
【方法體】
}