一共有5種不同的泛型約束
值類型約束:要求泛型參數(shù)必須是值類型癞揉,例如int,short以及自定義的stuct等
public class MyClass2
where T : struct//這個(gè)泛型類只接受值類型的泛型參數(shù)
{
}
引用類型約束:要求泛型參數(shù)必須是引用類型,例如string,object,以及自定義的class
public class MyClass
where T:class//這個(gè)泛型類只接受引用類型的泛型參數(shù)
{
}
構(gòu)造函數(shù)約束:要求泛型參數(shù)必須有構(gòu)造函數(shù)
public class MyClass3
where T : new()
{
}
接口約束:要求泛型參數(shù)必須實(shí)現(xiàn)某個(gè)接口
public class MyClass4
where T : System.IComparable
{
}
基類約束:要求泛型參數(shù)必須繼承某個(gè)基類
public class MyClass5
where T : Customer
{
}