Точный код, который я пытаюсь собрать:
public interface IMapContainer<out T> where T : MapRoomBase
{
String GetName();
IEnumerable<T> GetRooms();
}
Я получаю эту ошибку :Invalid variance :Параметр типа «T» должен быть неизменно действительным для «MapLibrary.IMapContainer.GetRooms ()». «Т» является ковариантным.
У меня сложилось впечатление, что это будет допустимо, поскольку IEnumerable просто возвращает элементы, и их нельзя добавить. Почему это не безопасно + действительно?