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. 清华博士后用10分钟讲解AlphaCode背后的技术原理,原来程序员不是那么容易被取代的!...
  2. [codevs 1232] 飞行员配对方案问题
  3. 【Linux】一步一步学Linux——groupmod命令(89)
  4. MySQL 黑洞引擎的使用场景解释
  5. [转] linux-Centos7安装python3并与python2共存
  6. 交叉表 列字段排序_Tableau学习系列(8):表计算
  7. 浏览器缓存知识小结及应用
  8. 专业QA如何实施可靠的CI / CD管道?
  9. 计算机如何查找目标,如何使用命令行查找计算机地理位置? | MOS86
  10. LeetCode 1658. 将 x 减到 0 的最小操作数(哈希)
  11. java虚引用作用_深入理解Java中的引用(二)——强软弱虚引用
  12. tensorflows十五 再探Momentum和Nesterov's accelerated gradient descent 利用自动控制PID概念引入误差微分控制超参数改进NAGD,速度快波动小
  13. 给ListView视图添加行号
  14. 前端请求接口post_程序员:HttpClient进行post请求的工具类,访问第三方接口HTTPS...
  15. Cheatsheet: 2013 04.01 ~ 04.16
  16. PHP word转pdf
  17. 动易和php,国内主流CMS对比之织梦内容管理系统VS动易
  18. ERP源码 跨境电商ERP源码 Java电商ERP源码
  19. python3爬虫-Python3网络爬虫入门实战解析
  20. 定制网站建设流程有哪些

热门文章

  1. 信息学奥赛一本通 1356:计算(calc)
  2. 信息学奥赛一本通 1115:直方图 | OpenJudge NOI 1.9 09
  3. 信息学奥赛一本通(2027:【例4.13】三角形)
  4. 传纸条(洛谷-P1006)
  5. 最大子矩阵(信息学奥赛一本通-T1224)
  6. 求π的值(信息学奥赛一本通-T1156)
  7. 计算器的改良(洛谷-P1022)
  8. Centos系列 Curl error (37): Couldn‘t read a file:// file for file:///etc/pki/rpm-gpg/RPM-GPG-KEY-XXXX
  9. 我的世界最危险的服务器生存系列,《我的世界》极具危险的服务器
  10. python时域信号特征提取(各种因子)