How can members of IEnumerable<T> be modified?

本文关键字:gt be modified lt can members of IEnumerable How | 更新日期: 2023-09-27 17:57:59

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

How can members of IEnumerable<T> be modified?

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

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

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

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

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