C#泛型機制只支持“在方法聲明上包含類型參數” -- 即泛型方法。
C#泛型機制不支持在除方法外的其他成員(包括屬性、事件、索引器、構造器、析構器)的聲明上包含類型參數,但這些成員本身可以包含在泛型類型中,並使用泛型類型的類型參數。
泛型方法既可以包含在泛型類型中,也可以包含在非泛型類型中。
泛型方法的聲明與調用
public class Finder
{
// 泛型方法的聲明
public static int Find(T[] items,T item)
{
for(int i=0; i
{
if(items[i].Equals(item)
{
return i;
}
}
return -1;
}
}
// 泛型方法的調用
int i = Finder.Find(new int[]{1,3,4,5,6,8,9},6);
泛型編程
泛型方法的重載
class MyClass
{
void F1(T[] a,int i); // 不可以構成重載方法
void F1(U[] a,int i);
void F2(int x); // 可以構成重載方法
void F2(int x);
void F3(T t) where T : A; // 不可以構成重載方法
void F3(T t) where T : B;
}