where T:new()

来源:互联网 发布:矩阵不为0什么意思 编辑:程序博客网 时间:2024/05/17 07:56

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()很给力。

原创粉丝点击