标签: c#
我已经阅读了一些关于差异的内容,并希望确保我完全了解它。我的理解是,协变是将更多派生类型隐式转换为更少,而逆变则则相反。我进一步认为协方差对应于泛型类型定义的out关键字。例如,IEnumerable接口定义使用out来导出参数的结果,而IComperable的接口定义使用in关键字来接收值。我还没有看到同时执行这两种操作的泛型类型,并且不明白为什么它可能不可能。我错过了什么? 我还读到了array []对方差的支持以及如何进行运行时检查以确保类型相同。