Почему это недопустимое отклонение?

Точный код, который я пытаюсь собрать:

    public interface IMapContainer<out T> where T : MapRoomBase
    {
        String GetName();

        IEnumerable<T> GetRooms();
    }

Я получаю эту ошибку :Invalid variance :Параметр типа «T» должен быть неизменно действительным для «MapLibrary.IMapContainer.GetRooms ()». «Т» является ковариантным.

У меня сложилось впечатление, что это будет допустимо, поскольку IEnumerable просто возвращает элементы, и их нельзя добавить. Почему это не безопасно + действительно?

6
задан Erix 13 August 2012 в 20:08
поделиться