C#的泛型約束-
阿新 • • 發佈:2019-02-05
`class b
{
}
class c
{
public c(string s)
{
}
public void hello<T>(T t) where T: new()
{
}
}
class a where T:class
{
public T x;
}
public class FanxingClient : MonoBehaviour {
void Start () { a<c> abc = new a<c>(); abc.x.hello<b>(new b()); a<c> abc2 = new a<c>(); abc2.x = new c(""); }`
記一下筆記今天學習了下 C#中的泛型約束 對類的約束和對方法的約束
類的約束:
class a where T:class
{
public T x;
}
限制泛型類的T型別只能為引用型別,還可以用struct, 限制為值型別也可以直接用int,float等關鍵字.
方法的約束:
public void hello<T>(T t) where T: Struct
{
}
和類的約束類似,只是還可以進行引數的約束
public void hello<T>(T t) where T: new()
{
}
限制只能用無參的構造方法
注:自己的一些理解,不對的地方,歡迎指出來~~~