c# 泛型study
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相关推荐
- java 泛型嵌套泛型_Java泛型嵌套
package com.study.generics; //泛型的嵌套使用 public class GenericsDemo06 { public static void main(String [ ...
- 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 注释 ...
- Android Study 之 findViewById 变迁之路
现在,一到周六,想想还要继续上班,瞬间千万个不爽席卷而来,XXOO此处省略n字... 休息一天的好处在于,让你感觉一天休息时间格外珍贵,而坏处在于,劳资TMD还没休息过来,结果第二天又开始上班了,而且 ...
- 10天学会kotlin DAY7 接口 泛型 协变 逆变
kotlin 接口 泛型 协变 逆变 前言 1.接口的定义 2.抽象类 3.定义泛型类 4.泛型函数 5.泛型变换 6.泛型类型约束 7.vararg 关键字(动态参数) 8.[] 操作符 9.out ...
- 【C#】集合_哈希表_字典_泛型_文件
数组能做到:存放同种类型数据,且数据个数确定 object类型的数组能满足:放各种类型的数据,确定放多少个,但是随意插入元素,数组做不到 集合能做到:存放各种数据类型,且不确定存放多少个,能做到随意插 ...
- 2021年大数据常用语言Scala(三十六):scala高级用法 泛型
目录 泛型 定义一个泛型方法 定义一个泛型类 上下界 协变.逆变.非变 非变 协变 逆变 泛型 scala和Java一样,类和特质.方法都可以支持泛型.我们在学习集合的时候,一般都会涉及到泛型. sc ...
- 对比两个同类型的泛型集合并返回差异泛型集合 ——两个List类名的比较
1: /// <summary> 2: /// 对比两个同类型的泛型集合并返回差异泛型集合 3: /// </summary> 4: /// <typeparam nam ...
- 利用委托和泛型实现树的常用操作
在日常开发中,经常遇到对树的操作,我们可以利用泛型和委托对这些树进行操作,这样就不需要每有一个树就要实现相应的功能了. 源码在http://files.cnblogs.com/haiconc/Lang ...
- java 泛型 父子,Java泛型-mb601cf8a78cc07的博客-51CTO博客
Java泛型 泛型类 即把不确定的数据元素类型用一个泛型占位符表示@Data public class Person { private T name; private T address; }Per ...
最新文章
- 卷积神经网络中十大拍案叫绝的操作
- 8.公有继承 保护继承 私有继承
- vue实现卡片式上下滑动_基于Vue.js仿制探探卡片左右滑动特效
- 热门的“挑战视频”,凭什么火起来的?
- 判断出栈序列是否合法(c语言实现)
- 奖励超10万!交大超牛本科生:成果达博士毕业水平,如今保研国家重点实验室...
- Missing iOS Distribution signing identity for XXXXX
- Web API 设计摘要
- SpringBoot: 注解@Autowired
- 吴恩达机器学习练习3:Logistic regression(Multi-class Classification)
- 在 Cloudera Data Flow 上运行你的第一个 Flink 例子
- 初识ubuntu 安装steam
- Python中具有不确定个数参数的函数
- win10系统可以登录微信,但浏览器不能打开网页
- [你好,2022] 月落乌啼霜满天,江枫渔火对愁眠
- android 半圆型菜单,Android-自定义view之圆形与“半圆形”菜单
- java 线程 设计模式_Java多线程设计模式(四)
- Unity_UIBuilder插件入门
- 39 Spring Boot Shiro权限管理【从零开始学Spring Boot】
- How to Install Nvidia Kernel Module Cuda and Pyrit in Kali Linux
热门文章
- USACO 2.3.3 罗马数字
- python笔记本-如何用Python在笔记本电脑上分析100GB数据(下)
- python手机版iphone-只会Python可造不出iPhone
- python能做游戏吗-没有Python不能做的游戏,这些游戏都可以做
- python编程if语法-Python中的if语句——参考Python编程从入门到实践
- python语法大全-总结了Python中的22个基本语法
- python工作招聘-python爬虫 智联招聘 工作地点
- python入门买什么书-大学生Python入门什么书好?
- python在excel中的应用-python中的excel操作
- python整数类型-Python 的数值类型(整数、长整数、浮点数和复数)