素手烹茶|C#笔记~泛型( 二 )
泛型类
泛型接口
泛型委托
对于泛型类和泛型接口 , 如果其他类继承或实现了它 , 要求这个类必须指定具体的类型 , 或者不指定类型但此类也是泛型类 。
七、泛型约束
在第六点我们已经使用了泛型约束 , 请看上图where部分 。 泛型约束是为类型安全而设计的 , 它有如下几种约束:
结构约束 。 值类型 , 必须在其他约束之前
类约束 。 引用类型 , 必须在其他类型约束之前
无参数构造函数约束 。 与其他约束使用时 , 必须放在最后
基类约束 。 基类或派生类 , 该基类必须是可继承的
接口约束 。 可以指定多个接口约束 , 类型必须实现该接口
八、协变(out)、逆变(in)
使用泛型之后 , 我们发现基类和子类的泛型并没有继承关系 , 但实际业务中 , 他们还是父子关系 。
为解决上述问题 , 引入了协变、逆变 。
1.协变 , 让赋值表达式右边可以用子类
协变只能修饰返回参数 。 为什么不能修饰传入参数呢?因为父类赋值给子类 。
2.逆变 , 让赋值表达式右边可以用父类
逆变只能修饰传入参数 。
3.协变逆变只能用于接口、委托 。
推荐阅读
- 润杨的红楼笔记|贾母为什么不给林黛玉另择佳婿,而是坚持宝黛联姻?,元春赐礼后
- 润杨的红楼笔记|薛宝钗安排湘云住稻香村,她安了什么心?,抄检大观园后
- 董洁■董洁比李小璐更令人唏嘘
- 无话不谈|三款笔记本两款平板,联想又来抢钱了
- 素手烹茶|Redis 事务也叫事务吗?,不支持原子性的
- 素手烹茶|中芯或被“拉黑”要求退出群聊,这是机遇还是无奈?
- 太平洋电脑网|质高价低笔记本电脑可以购买么,真的存在物美价廉?
- 运营商世界网|华为刚发布MateBookX联想就预告将重新定义笔记本,PC电脑老大急了
- 波妞时尚笔记|早秋想要穿得有气质,不如试试衬衫+半裙这一组CP,简直不要太美
- 素手烹茶|尘封23年的运钞车劫案告破:嫌犯在部队服役时作案,转业后两获三等功成法官
