我正在阅读 C# 中的Covariance
and Contravariance
。
据我了解,
如果我们有一个类Animal
和一个派生类Cat
,那么,
Covariance
功能使编译器接受将类型对象传递给Cat
类型Animal
对象,Contravariant
反之亦然。
一切都很好,直到我读到这一行。
“要注释类型协方差,请使用out
参数,而对于逆变,请使用in
参数”
根据我的说法,用out
关键字修饰的参数 => 必须将值分配给函数中的特定参数。
我很难将out
关键字covariance
与in
关键字关联起来contravariant
。
这两者有什么关系?两者都有什么超级简单的例子吗?
提前致谢。