看看新的约束
public class MyClass<T> where T : new(){ protected T GetObject() { return new T(); }}T可能是没有默认构造函数的类:在这种情况下,
new T()它将是无效的语句。该
new()约束说,
T必须有一个默认的构造,这使得
newT()法律。
您可以将相同的约束应用于通用方法:
public static T GetObject<T>() where T : new(){ return new T();}如果您需要传递参数:
protected T GetObject(params object[] args){ return (T)Activator.CreateInstance(typeof(T), args);}


