协方差和逆变

时间:2010-10-27 10:48:10

标签: c#

可能是我的问题很愚蠢,但现在是。

协方差和反演是否仅适用于c#中的代表?

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

1 个答案:

答案 0 :(得分:8)

  

协方差和逆变是否仅适用于c#中的代表?

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

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

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

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

没有;它不适用于类/结构(虽然你当然可以实现一个协变接口,并强制到该接口)。