特牛生活网

协变(covariance),逆变(contravariance)与不变(invariance)_invariance和covariance-CSDN博客

网友收藏
文章浏览阅读3.5k次,点赞2次,收藏5次。协变,逆变与不变能在使用父类型的场景中改用子类型的被称为协变。 能在使用子类型的场景中改用父类型的被称为逆变。 不能做到以上两点的被称为不变。 以上的场景通常包括数组,继承和泛型。协变逆变与泛型(C#,Java)在C#中,泛型参数的类型缺省是不变的,但是我们可以在定义泛型类或接口时通过给参数类型加上out或in来标注该参数类型是协变还是逆变。 * 协变意味着你能把 IEnumerable