正確なコード:なぜこれは無効な分散ですか?私が構築しようとしている
public interface IMapContainer<out T> where T : MapRoomBase
{
String GetName();
IEnumerable<T> GetRooms();
}
私はこのエラーを取得しています: 無効な分散を:typeパラメータ「T」「はMapLibrary.IMapContainer.GetRooms()」に不変有効でなければなりません。 'T'は共変数である。
IEnumerableが単にアイテムを返すので、これが有効であるという印象を受けましたが、追加することはできません。なぜこれは安全でない+有効ですか?
申し訳ありませんが、なぜ「out T」ですか?あなたはそれを必要としますか? –
なぜTはあなたのインターフェースのパラメータですか?あなたは何を達成しようとしていますか?私の見解からは、奇妙に見える/間違っている。 –
@ Xtian、Andre、http://msdn.microsoft.com/en-us/library/dd997386.aspx。 –