1.引用类型约束:  类型实参包含任何类,接口,数组,委托,或者是已知是引用类型的另一个类型参数

class demo<T> where T:class

有效的封闭区间demo<String>;demo<int[]>;demo<person>;demo<IDisposable>

无效的封闭区间demo<int>

2.值类型约束:包含值类型,包括枚举 enum。但是他将可空类型排除在外int?

class demo<T>where T:struct

有效的封闭区间demo<int>; demo<enumDemo>

无效的封闭区间demo<int[]> ;demo<object> ;demo<StringBuild>

3.构造函数类型约束:无参构造函数约束

泛型方法demo

Public T demo<T>() where T:new()

{

return T()

}

4 转换类型约束:类型实参必须可以通过一致性,引用或者装箱转换隐式的转换成该类型

class  demo<T> where  T:int

demo<int> ;一致性转换

class demo<T> where T:IDisposable

demo<SqlConnection> 引用转换

public class demo<T> where T:IComparable<T>

demo<int> demo<float> 装箱转换

class demo<T,U> where T:U

demo<int,IComparable> 装箱转换

可以指定多个接口但是只能指定一个类

class demo<T> where T:IComparable<int>,Stream,IDisposable

5.组合约束:没有任何类型既是引用类型又是值类型的,所以这种 这种组合是禁止的

已经约束为值类型那么就不能再约束 new()

如果是转换类型约束 其中一个是类的话那么就要放在接口前面,而且我们不能多次指定同一个接口。

有效约束: class demo<T> where T:class,new()

class demo<T> where T:Struct,IDisposable

class demo<T,U> where T :class where U :struct

最新文章

  1. Java笔记:异常
  2. YbSoftwareFactory 代码生成插件【二十四】:MVC中实现动态自定义路由
  3. 基于mjpg_streamer视频服务器移植【转】
  4. linux 大量的TIME_WAIT解决办法
  5. (字符串的处理4.7.16)POJ 1159 Palindrome(让一个字符串变成回文串需要插入多少个字符...先逆序,在减去公共子序列的最大长度即可)
  6. Struts1 中$ 没有解析的问题
  7. webpack的配置及使用
  8. SqlServer存储过程传入Table参数
  9. angular $location常用方法使用
  10. bzoj3293 [Cqoi2011]分金币&amp;&amp;bzoj1045 [HAOI2008]糖果传递
  11. 高效搭建lnmp环境
  12. 【安富莱二代示波器教程】第17章 附件B---功能扩展和改进方向
  13. 第一章 Java入门
  14. lumisoft.net 邮件管理系列文章 - 如何判断附件为内嵌式还是附加式
  15. css中元素的位置
  16. django之class Meta
  17. springcloud中eureka集群unavailable-replicas
  18. CentOS7.5安装cairo-dock,比mac托盘还美
  19. 常见IE8兼容性问题及解决
  20. 【python】ConfigParser写入和读取配置文件

热门文章

  1. Cassandra开发入门文档第三部分(非规范化关系结构、批处理)
  2. Transaction-Mybatis源码
  3. TCP/IP和OSI4层、7层协议介绍
  4. 将博客转成pdf
  5. SQL Server表分区(转)
  6. NancyFx And ReactiveX
  7. Java-手动搭建SSH(maven版)
  8. LOJ #3103. 「JSOI2019」节日庆典
  9. mongodb常规操作语句
  10. React 语法