where T:new()

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

阅读更多
文章标签: class
个人分类: C#
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

where T:new()

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭