可能是我的问题很愚蠢,但现在是。
协方差和反演是否仅适用于c#中的代表?
我们可以在正常的类层次结构中具有协方差和逆变吗?
答案 0 :(得分:8)
协方差和逆变是否仅适用于c#中的代表?
不完全;语言级差异也适用于接口,例如IEnumerable<out T>
(同样in
也很好)。
我还应该注意,引用类型的数组也是协变的:
string[] orig = {"abc","def"};
object[] sameArray = orig;
我们可以在正常的类层次结构中具有协方差和逆变吗?
没有;它不适用于类/结构(虽然你当然可以实现一个协变接口,并强制到该接口)。