CLR 协变逆变

Posted 大稳·杨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CLR 协变逆变相关的知识,希望对你有一定的参考价值。

看书看得有点晕了,协变、逆变傻傻分不清楚。

看到泛型和委托、委托方法,发现这里面的协变和逆变不一样。

泛型的逆变和协变:
如果某个返回类型可以由其基类替换,那么这个类型就是支持协变的。
如果某个参数类型可以由其派生类替换,那么这个类型就是支持逆变的。

 

委托方法的逆变和协变:

如果某个返回类型可以由其派生类替换,那么这个类型就是支持协变的。
如果某个参数类型可以由其基类替换,那么这个类型就是支持逆变的。

 

我现在也有点懵。

个人看书及查的资料所得,如有错误,欢迎指正。

以上是关于CLR 协变逆变的主要内容,如果未能解决你的问题,请参考以下文章

java逆变与协变(待完善)

[JAVA冷知识]什么是逆变(contravariant)与协变(covariant)?数组是否支持协变&逆变?泛型呢?

[JAVA冷知识]什么是逆变(contravariant)与协变(covariant)?数组是否支持协变&逆变?泛型呢?

Java 逆变与协变

泛型之逆变和协变总结

Typescript中的协变和逆变