new()构造函数约束允许开发人员实例化一个泛型类型的对象。
一般情况下,无法创建一个泛型类型参数的实例。然而,new()约束改变了这种情况,要求类型参数必须提供一个无参数的构造函数。
在使用new()约束时,可以通过调用该无参构造函数来创建对象。
基本形式: where T : new()
如下:
public class A<T> where :type,new()
{
public void Test()
{
T t=new T();
}
}
main中如下:
Test t=new Test();
Test类
public class Test
{
public Test(int a)
{
}
}
此时不能编译通过。
解决方案:在Test类中加入无参构造函数即可。
以前我们在类中实例化泛型类时,一般要用T.CreateInstance(...);现在方便了许多,不得不说,new()很给力。