来源:http://www.cnblogs.com/FredWang/p/4284251.html

class A<T> where T:new()  ===》》》     where后的称为泛型约束 这里约束泛型参数T必须具有无参的构造函数

这是类型参数约束,where表明了对类型变量T的约束关系。where T:A 表示类型变量是继承于A的,或者是A本省。where T: new()指明了创建T的实例应该使用的构造函数。

.NET支持的类型参数约束有以下五种:

where T: struct                                     T必须是一个结构类型

where T: class                                       T必须是一个类(class)类型

where T: new()                                      T必须要有一个无参构造函数

where T: NameOfBaseClass                  T必须继承名为NameOfBaseClass的类

where T: NameOfInterface                     T必须实现名为NameOfInterface的接口

where 泛型约束:

定义:在定义泛型的时候,我们可以使用 where 限制参数的范围。

使用:在使用泛型的时候,你必须尊守 where 限制参数的范围,否则编译不会通过

在实际项目中什么时候用到它们?

有时候你在做一个项目的时候,你需要用到泛型,你只希望传给你的泛型参数是限定范围的,

比如你希望值类型,或者是引用类型,或者是继承至某个类型、或者是符合某个接扣的类型,

这个时候你该如何办?你就需要用到 WHERE 来限定了。

参考MSDN原文

在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。

T:new()
 类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时, new() 约束必须最后指定。

转载于:https://www.cnblogs.com/ZkbFighting/p/7732480.html

class AT where T:new()相关知识点相关推荐

  1. 卫星轨道推演计算相关知识点总结(含欧拉角、旋转矩阵、及各坐标系转化等)

    来源:轨道机动算法的C++实现_shirro123的专栏-CSDN博客 卫星轨道推演计算相关基础知识点总结 一.卫星的运动特性             二.卫星的空间坐标系               ...

  2. 水下机器人_相关知识点

    485转232 SP3485的管脚及功能: Pin1.RO    接收器输出 Pin2.RE 接收器输出使能(低电平有效) Pin3.DE 驱动器输出使能(高电平有效) Pin4.DI 驱动器输入 P ...

  3. js 闭包及其相关知识点理解

    本文结合个人学习及实践,对闭包及相关知识点进行总结记录,欢迎读者提出任何不足之处 一.js变量 二.作用域(scope) 三.[[scope]] 和 scope chain 四.作用域(scope)和 ...

  4. Redis:相关知识点纵观

    这篇文章先简单的介绍一下redis有什么相关知识点,然后再从接下去的一些文章对一些重要的知识点进行总结. 一.Redis 是什么 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存 ...

  5. 网络流量队列优先级相关知识点

    网络流量队列优先级相关知识点 Qdisc(quick disconnect)快速分离,断开;是一种排队规则,实现对流量的优先级管理. 涉及随机公平队列,令牌桶过滤器,分层令牌桶,FIFO, /* *C ...

  6. Linux安装和管理程序的相关知识点

    Linux安装和管理程序的相关知识点 一.Linux应用程序基础 1.应用程序与系统命令的关系 2.典型的应用程序结构 3.常见软件包封装类型 二.RPM软件包管理工具 1.RPM包管理工具 2.RP ...

  7. rem和css3的相关知识点

    ☆☆☆rem和css3的相关知识点☆☆☆ 一. Web front-end development engineer rem是根据页面的根元素的font-size的一个相对的单位,即 html{ fo ...

  8. 一次kafka的offset回退事件及相关知识点

    一次kafka的offset回退事件及相关知识点 原文链接:https://blog.csdn.net/lkforce/article/details/83384747

  9. CSS相关知识点:6种清除浮动和BFC

    文章目录 CSS相关知识点:6种清除浮动和BFC 一.6种清除浮动 1.场景 2.原因 3.清除浮动 (1).给父级设置对应的高度 (2).给父级增加定位absolute (3).将父级也设计成浮动 ...

  10. labview csv文件处理_LabVIEW 相关知识点分类汇总

    题图照片:Photo by Pixabay from Pexels 为了在知乎和小伙伴们一起更好进行LabVIEW相关知识与技术的讨论,特此制作了本知识点分类汇总供大家参考,分类采用先分块后分层的分而 ...

最新文章

  1. 用人话理解hash算法、特性、唯一性等
  2. 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 )
  3. IE 6.0、IE 7.0 无提示关闭窗口
  4. 「博客之星」评选,互投5星,留链必投
  5. java编程思想学习(3):Java中的private、protected、public和default的区别
  6. 用python玩转数据测试与作业_用Python玩转数据分析10
  7. 学习Spring Boot:(十七)Spring Boot 中使用 Redis
  8. lazy-mock ,一个生成后端模拟数据的懒人工具
  9. python装饰器性能_python装饰器的特性原理详解
  10. React Native商城项目实战04 - 封装TabNavigator.Item的创建
  11. php 删除 session 文件,如何删除php中的session文件
  12. 线程与进程的区别及其通信方式
  13. 如何查看mysql数据库中各个表的大小
  14. 大学生活的真实写照(经典)
  15. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1
  16. Twd轉php_5 TWD to PHP Currency Converter - 新台币 菲律宾比索 汇率兑换
  17. ★如何引导客户需求?几个经…
  18. xshell免费版安装
  19. MySQl 实现 FULL JOIN
  20. 自定义IOS系统弹框

热门文章

  1. ajax通用代码,通用代码之一: 轻松使用Ajax
  2. css3位移过度效果,详解Css3新特性应用之过渡与动画
  3. 人之间的尊重是相互的_人与人之间要学会相互尊重
  4. python爬取网页文本_手把手教你如何用Python爬取网站文本信息
  5. 学习java_java学习册之立FLAG
  6. 斑马打印机怎么打印二维码_简单介绍斑马打印机---GX430t
  7. 江门计算机职称考试时间,江门职称计算机考试时间
  8. .git文件夹_如何使用git把本地代码上传(更新)到github上
  9. java list实现九九乘法表梯形_JavaScript实现梯形乘法表的方法
  10. OpenCV-Python实战(番外篇)——OpenCV、NumPy和Matplotlib直方图比较