如何修改 IEnumerable 的成员<T>?



在前面关于一般方差的问题中,我被告知可以修改IEnumerable<T>的成员。如何做到这一点?鉴于当协变类型可以修改时会出现方差冲突,那么IEnumerable<T>如何在T上协变?

您必须区分修改序列和修改序列元素

您可以毫无问题地修改元素,因为您不能通过使用对象上的属性和函数来修改对象的类型

因此,这一切都很好,因为IEnumerable<T>中的所有元素要么是T,要么是从T派生的类型。

例如,只有在IEnumerable<Derived> 中存在Base类型的对象

的情况下,才会发生您提到的此类违规行为

相关内容

  • 没有找到相关文章

最新更新