私が構築しようとしている正確なコード:
public interface IMapContainer<out T> where T : MapRoomBase
{
String GetName();
IEnumerable<T> GetRooms();
}
次のエラーが表示されます: 無効な分散: 型パラメーター 'T' は、'MapLibrary.IMapContainer.GetRooms()' で不変的に有効である必要があります。「T」は共変です。
IEnumerable は単純にアイテムを返し、何も追加できないため、これは有効であるという印象を受けました。これが安全で有効でないのはなぜですか?