可能是我的问题很愚蠢,但就是这样。
协方差和逆变仅适用于 c# 中的委托(delegate)吗?
我们可以在正常的类层次结构中拥有协方差和逆变吗?
最佳答案
不完全的;语言级别的差异也适用于接口(interface),例如 IEnumerable<out T>
(同样 in
也很好)。
我还应该注意到引用类型的数组也是协变的:
string[] orig = {"abc","def"};
object[] sameArray = orig;
不;它不适用于类/结构(尽管您当然可以实现协变接口(interface),并强制使用该接口(interface))。
关于c# - 协方差和逆变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4032382/