为什么ReadOnlyCollection <T>不是ReadOnlyCollection <out T>?

Jof*_*sey 1 c# generics

ReadOnlyCollection<T>仅支持阅读操作.为什么T没有标记out关键字?

Luk*_*don 5

ReadOnlyCollection仅支持读取操作

它只支持读取,因为它是通用只读集合的​​基类.

为什么T没有标记out关键字?

out关键字表示参数是协变的,只有接口和委托可以是协变的.需要注意的是ReadOnlyCollection<T>实现IEnumerable<T>这是协变的.