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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值