型別引數t
泛型的型別引數t可以看作是乙個佔位符,它不是一種型別,它僅代表了某種可能的型別。型別引數t可以在使用時用任何型別來代替。
型別引數t的命名準則如下:
使用描述性名稱命名泛型型別引數,除非單個字母名稱完全可以讓人了解它表示的含義,而描述性名稱不會有更多的意義。
public inte***ce isessionchannel
}泛型介面
inte***ce 介面名
在例項化泛型時也可以使用約束對型別引數的型別種類施加限制,約束是使用where上下文關鍵字指定的。下面列出了6種型別的約束:
a).t:結構——型別引數必須是值型別。可以指定除nullable以外的任何值型別。
b).t:類——型別引數必須是引用型別。這一點也使用於任何類、介面、委託或陣列型別。
c).t:new()——型別引數必須具有無引數的公共建構函式。當與其他約束一起使用時,new()約束必須最後指定。
d).t:《基類名》——型別引數必須是指定的基類或派生自指定的基類。
e).t:《介面名稱》——型別引數必須是指定的介面或實現指定的介面。可以指定多個介面約束。約束介面也可以是泛型的。
f).t:u——為t提供的型別引數必須是為u提供的引數或派生自為u提供的引數。這稱為裸型別約束。
// 建立乙個泛型介面
public inte***ce igenericinteface
// 實現上面泛型介面的泛型類
// 派生約束 where t:ti(t要繼承自ti)
// 建構函式約束where t:new()(t可以例項化)
public class factory: igenericintefacewhere t:ti,new()
}泛型方法
修飾符 void 方法名《型別引數 t>
注:泛型方法可以使用多型別引數進行過載。
public static int find(t items, t item)
{}int i = finer.find(new int, 6);
《c#從入門到精通》讀後總結
泛型的使用
unit unit1 inte ce uses winapi.windows,winapi.messages,system.sysutils,system.variants,system.classes,vcl.graphics,vcl.controls,vcl.forms,vcl.dialogs ...
泛型的使用
泛型是什麼,為什麼使用泛型 泛型是指宣告時不指定型別,使用時指定型別,用編譯時用來宣告型別,使用時指定型別。這就意味著意味著編寫的 可以被不同型別的物件所重用。在集合中如果使用object型別,那麼在使用過程中我們需要進行強制轉換型別,並且在編譯過程中不能夠進行型別轉換檢查異常。這樣就會容易在執行過...
泛型的使用
目前這個專案使用的jsp servlet j abean,沒有使用其它的框架。在處理資料庫的時候,多張表就對應多個dao,而每個dao都有增刪改查的方法,顯得很冗餘。於是寫了乙個commondao,其中包含了其他dao裡面共有的一些方法。然後讓其他的dao類繼承commondao,servlet中直...