對於new()約束
public class Tester<T>
where T:new()
{
public Tester()
{
t = new T();//等同於非泛型版本的new? 例如 object o = new object();?
}
private T t;
}
事實上
Tester<SomeType> t = new Tester<SomeType>();
//此處編譯器會檢查SomeType是否具有無參構造函數
而Tester<T>類的構造函數中的new代碼
public class Tester<T>
where T:new()
{
public Tester()
{
t = System
}
private T t;
}
也就是說
From:http://tw.wingwit.com/Article/program/net/201311/13556.html