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

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

public interface IReadOnlyCollection<out T> : IEnumerable<T>, IEnumerable
{
    int Count { get; }
}

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

public interface ICollection<T> : IEnumerable<T>, IEnumerable, *IReadOnlyCollection<T>*

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

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

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

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

UPDATE

Я ищу ответ, который используетObject Oriented design reasoning объяснить почему:

A concrete class such as List<T> implementing both IReadOnlyCollection<T> and ICollection<T>

is a better design than:

ICollection<T> implementing IReadOnlyCollection<T> directly

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

Why doesn't IList<T> implement IReadOnlyList<T>? Why doesn't IDictionary<T> implement IReadOnlyDictionary<T>?

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

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