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

转载于:https://www.cnblogs.com/balcon/p/11548232.html

c# 泛型study相关推荐

  1. java 泛型嵌套泛型_Java泛型嵌套

    package com.study.generics; //泛型的嵌套使用 public class GenericsDemo06 { public static void main(String [ ...

  2. Java Study Notes_Design in 2023(Day01~Day14)

    文章目录 Day01:Java入门 1.1 Java的技术体系 1.2 Java快速入门 1.2.1 JDK.JRE与JVM 1.2.2 JDK环境变量配置 1.3 Java基础语法 1.3.1 注释 ...

  3. Android Study 之 findViewById 变迁之路

    现在,一到周六,想想还要继续上班,瞬间千万个不爽席卷而来,XXOO此处省略n字... 休息一天的好处在于,让你感觉一天休息时间格外珍贵,而坏处在于,劳资TMD还没休息过来,结果第二天又开始上班了,而且 ...

  4. 10天学会kotlin DAY7 接口 泛型 协变 逆变

    kotlin 接口 泛型 协变 逆变 前言 1.接口的定义 2.抽象类 3.定义泛型类 4.泛型函数 5.泛型变换 6.泛型类型约束 7.vararg 关键字(动态参数) 8.[] 操作符 9.out ...

  5. 【C#】集合_哈希表_字典_泛型_文件

    数组能做到:存放同种类型数据,且数据个数确定 object类型的数组能满足:放各种类型的数据,确定放多少个,但是随意插入元素,数组做不到 集合能做到:存放各种数据类型,且不确定存放多少个,能做到随意插 ...

  6. 2021年大数据常用语言Scala(三十六):scala高级用法 泛型

    目录 泛型 定义一个泛型方法 定义一个泛型类 上下界 协变.逆变.非变 非变 协变 逆变 泛型 scala和Java一样,类和特质.方法都可以支持泛型.我们在学习集合的时候,一般都会涉及到泛型. sc ...

  7. 对比两个同类型的泛型集合并返回差异泛型集合 ——两个List类名的比较

    1: /// <summary> 2: /// 对比两个同类型的泛型集合并返回差异泛型集合 3: /// </summary> 4: /// <typeparam nam ...

  8. 利用委托和泛型实现树的常用操作

    在日常开发中,经常遇到对树的操作,我们可以利用泛型和委托对这些树进行操作,这样就不需要每有一个树就要实现相应的功能了. 源码在http://files.cnblogs.com/haiconc/Lang ...

  9. java 泛型 父子,Java泛型-mb601cf8a78cc07的博客-51CTO博客

    Java泛型 泛型类 即把不确定的数据元素类型用一个泛型占位符表示@Data public class Person { private T name; private T address; }Per ...

最新文章

  1. 卷积神经网络中十大拍案叫绝的操作
  2. 8.公有继承 保护继承 私有继承
  3. vue实现卡片式上下滑动_基于Vue.js仿制探探卡片左右滑动特效
  4. 热门的“挑战视频”,凭什么火起来的?
  5. 判断出栈序列是否合法(c语言实现)
  6. 奖励超10万!交大超牛本科生:成果达博士毕业水平,如今保研国家重点实验室...
  7. Missing iOS Distribution signing identity for XXXXX
  8. Web API 设计摘要
  9. SpringBoot: 注解@Autowired
  10. 吴恩达机器学习练习3:Logistic regression(Multi-class Classification)
  11. 在 Cloudera Data Flow 上运行你的第一个 Flink 例子
  12. 初识ubuntu 安装steam
  13. Python中具有不确定个数参数的函数
  14. win10系统可以登录微信,但浏览器不能打开网页
  15. [你好,2022] 月落乌啼霜满天,江枫渔火对愁眠
  16. android 半圆型菜单,Android-自定义view之圆形与“半圆形”菜单
  17. java 线程 设计模式_Java多线程设计模式(四)
  18. Unity_UIBuilder插件入门
  19. 39 Spring Boot Shiro权限管理【从零开始学Spring Boot】
  20. How to Install Nvidia Kernel Module Cuda and Pyrit in Kali Linux

热门文章

  1. USACO 2.3.3 罗马数字
  2. python笔记本-如何用Python在笔记本电脑上分析100GB数据(下)
  3. python手机版iphone-只会Python可造不出iPhone
  4. python能做游戏吗-没有Python不能做的游戏,这些游戏都可以做
  5. python编程if语法-Python中的if语句——参考Python编程从入门到实践
  6. python语法大全-总结了Python中的22个基本语法
  7. python工作招聘-python爬虫 智联招聘 工作地点
  8. python入门买什么书-大学生Python入门什么书好?
  9. python在excel中的应用-python中的excel操作
  10. python整数类型-Python 的数值类型(整数、长整数、浮点数和复数)