Почему универсальная ICollection не реализует IReadOnlyCollection в .NET 4.5?

В .NET 4.5 / C # 5,IReadOnlyCollection объявлен сCount имущество:

public interface IReadOnlyCollection : IEnumerable, IEnumerable
{
    int Count { get; }
}

Мне интересно, нет это имело смысл дляICollection реализоватьIReadOnlyCollection интерфейс также:

public interface ICollection : IEnumerable, IEnumerable, *IReadOnlyCollection*

Это было бымы подразумевали, что классы реализуютICollection было бы'автоматическиIReadOnlyCollection, Это звучит разумно для меня.

ICollection абстракция может рассматриваться как продолжениеIReadOnlyCollection абстракция. Обратите внимание, чтоListнапример, реализует обаICollection а также .IReadOnlyCollection

Однако это не было разработано таким образом.

Что мне здесь не хватает? Почему вместо этого была выбрана текущая реализация?

UPDATEI»

ищу ответ, который используетОбъектно-ориентированное проектное обоснование объяснить почему:

Конкретный класс, такой какList реализуя обаIReadOnlyCollection а также ICollection

это лучший дизайн, чем:

ICollection реализацииIReadOnlyCollection непосредственно

Также обратите внимание, что это по сути тот же вопрос, что и:

Почему неIList воплощать в жизнь ?IReadOnlyListПочему неIDictionary воплощать в жизнь ?IReadOnlyDictionary

Ответы на вопрос(6)

Ваш ответ на вопрос