博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【协变】和【逆变】的简单示例
阅读量:7118 次
发布时间:2019-06-28

本文共 764 字,大约阅读时间需要 2 分钟。

注意:无论【协变】还是【逆变】都能 保证类型安全

1 static void Main(string[] args) 2 { 3     //==>【协变】:子类泛型赋值给父类泛型 (返回值的时候使用) 4     //前提是类型参数有 out 修饰:public interface IQueryable
5 IQueryable
a = null; 6 IQueryable
b = a; //这里就是【协变】 7 8 //==>【逆变】:父类泛型赋值给子类泛型 (传参数的时候使用) 9 //前提是类型参数有 in 修饰:public delegate void Action
(T obj);10 Action
c = null;11 Action
d = c; //这里就是【逆变】12 d("target");//这一行是理解关键,注意实际是谁在使用"target"参数就能理解【逆变】13 14 //==>【最后提醒一句】:像List
这样的泛型类,由于声明时没有 in或out 修饰泛型参数,所以不存在【协变】和【逆变】15 //public class List
16 List
e = null;17 List
f = e; //不存在【协变】,编译时就会报错18 List h = null;19 List
i = h; //不存在【逆变】,编译时就会报错20 }

转载于:https://www.cnblogs.com/techliang666/p/8018383.html

你可能感兴趣的文章
screen 命令使用及示例
查看>>
windows10环境下的RabbitMQ安装步骤(图文)
查看>>
Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十八):kafka0.10.1 内置性能测试API用法示例...
查看>>
【html+css3】在一张jpg图片上,显示多张透明的png图片
查看>>
WPF 3D模型的一个扩展方法
查看>>
postgreSQL学习(二):pgsql的一些基础操作
查看>>
openstack之镜像管理
查看>>
Gartner 2018 年WAF魔力象限报告:云WAF持续增长,Bot管理与API安全拥有未来
查看>>
如何在Java客户端调用RESTful服务
查看>>
一个月薪两万的Web安全工程师要掌握哪些技能?
查看>>
同事写得Python对页面压测脚本
查看>>
H2:开源内存数据库引擎
查看>>
(原創) 何谓可读性高的程序? (C/C++)
查看>>
JAVA的类名.this
查看>>
TP复习8
查看>>
最近要用C#实现用免费smtp服务器(GMail)发邮件,贴段整理好的代码
查看>>
通信原理实践(一)——音频信号处理
查看>>
如何实现网页上的气球提示
查看>>
js获取地址栏url以及获取url参数
查看>>
Oracle之自动收集统计信息
查看>>