IReadOnlyCollection<T>
やなどの .NET 4.5 の新しい読み取り専用インターフェイスIReadOnlyDictionary<TKey,TValue>
は非常に便利です。特にCollection<T>
、List<T>
やなどの一般的な BCL 型に実装されているためDictionary<TKey,TValue>
です。
ただし、実装するようにアップグレードされていませんHashSet<T>
。また、これらのクラスは変更や破壊的変更なしでインターフェイスと一致するため、この決定の背後にあるロジックを確認できません。BCL チームが見落としていたのでしょうか、それとも私が見逃しているものがありますか?SortedSet<T>
IReadOnlyCollection<T>
(セットを a 内にラップする組み込みの方法がないため、これは特に厄介ですIReadOnlyCollection<T>
。実際、ReadOnlyCollection<T>
ラップIList<T>
ではなく、ラップしICollection<T>
ます。独自のラッパーを作成するのは簡単なことです。)