where T:new() 是什么意思

where T:new() 是什么意思

经常看到方法后面加where T:new() ,下面来解释下

比如如下这个方法
   protected  static  T CreateNewInstance<T>() where T :  new () 
        
             return  new  T(); 
         }

 

解释如下:

T后面跟的是泛型约束,啥叫泛型约束,就是你必须要符合这个规则来,不然就不让你编译通过 。

后面的new()代表这个T 必须有一个无参的构造函数,

当然一个新建的class。这个类做为T,也是可以编译通过的。

因为如果类中没有构造函数会默认就加一个无参的构造函数,刚好符合这个约束。

比如

Public Class People{}

这个people 做为T默认是可以编译通过的。因为他等同于

Public Class People(public People(){})

但如果有一个这样的People就会编译不通过了。

Public Class People(public People(string s){}})

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值