泛型類型的成員
class C
{
public V f1; //聲明字段
public D f2; //作為其他泛型類型 的參數
public C
{
this.f1 = x;
}
}
泛型類型的成員可以使用泛型類型聲明中的類型參數。但類型參數如果沒有任何約束,則只能在該類型上使用從System.Object繼承的共有成員。
泛型接口
interface IList
{
T[] GetElements();
}
interface IDictionary
{
void Add(K key,V value);
}
//泛型接口的類型參數要麼已實例化
//要麼來源於實現類聲明的類型參數
class List:IList,IDictionary
{
public T[] GetElements{}
{
return null;
}
public void Add(int index,T value){}
}
泛型委托
delegate bool Predicate(T value);
class X
{
static bool F(int i){...}
static bool G(string s){...}
static void Main()
{
Predicate p2 = G;
Predicate p1 = new Predicate(F);
}
}
泛型委托支持返回值和參數哂納感應用參數類型,這些參數類型同樣可以附帶合法的約束。