泛型的使用

2022-09-17 16:48:23 字數 1084 閱讀 5833

型別引數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中直...