可能是我的问题很愚蠢,但就是这样。

协方差和逆变仅适用于 c# 中的委托(delegate)吗?

我们可以在正常的类层次结构中拥有协方差和逆变吗?

最佳答案



不完全的;语言级别的差异也适用于接口(interface),例如 IEnumerable<out T>(同样 in 也很好)。

我还应该注意到引用类型的数组也是协变的:

string[] orig = {"abc","def"};
object[] sameArray = orig;



不;它不适用于类/结构(尽管您当然可以实现协变接口(interface),并强制使用该接口(interface))。

关于c# - 协方差和逆变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4032382/

10-12 05:55