我正在尝试构建的确切代码:
public interface IMapContainer<out T> where T : MapRoomBase
{
String GetName();
IEnumerable<T> GetRooms();
}
我收到此错误:无效方差:类型参数“T”必须在“MapLibrary.IMapContainer.GetRooms()”上始终有效。“T”是协变的。
我的印象是这将是有效的,因为 IEnumerable 只是返回项目,并且不能添加任何项目。为什么这不安全+有效?