汎用クラスの定義と制約
1798 ワード
--public void Delete<T>(List<T>Entity List)where T:class,new()の使い方
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
public class className
すなわち,Tはクラス(class)タイプでなければならず,構造(structure)タイプではない.これはタイプパラメータコンストレイントです.NETがサポートするタイプパラメータ制約には、where T:struct|Tが構造タイプwhere Tである必要があります:class where T:new()|Tは無パラメトリックコンストラクション関数where T:NameOfBaseClass|TはNameOfBaseClassというクラスwhere T:NameOfInterface|TはNameOfInterfaceというインタフェースを実装する必要があります
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Assemble<T> , T 。
public class Assemble<T> where T:new()
{
public string SayHello<T> (T object)
{
T ass=new T();
return ass.ToString();
}
}
public class legal
{
public legal(){}
}
public class notlegal
{
public notlegal(string someting)
{}
}
Assemble<legal> ass=new Assemble<legal>(); Assemble<T>, T legal。 Assemble<notlegal> ass=new Assemble<notlegal>(); , Assemble<T> T , , 。