Dokładny kod próbuję zbudować:Dlaczego ta wariancja jest nieważna?
public interface IMapContainer<out T> where T : MapRoomBase
{
String GetName();
IEnumerable<T> GetRooms();
}
dostaję ten błąd: Nieprawidłowy wariancji: Parametr typu „T” musi być ważna w niezmienniczo „MapLibrary.IMapContainer.GetRooms()”. "T" jest kowariantny.
Byłem pod wrażeniem, że będzie to ważne, ponieważ IEnumerable prostu zwraca elementy, i nikt nie może być dodany. Dlaczego to nie jest bezpieczne + ważne?
Przykro mi, ale dlaczego 'out T'? Czy potrzebujesz tego "out"? –
Dlaczego jest T out parametr z interfejsu? Co próbujesz osiągnąć? z mojej perspektywy, która wygląda dziwnie/źle. –
@Xtian, Andre, http://msdn.microsoft.com/en-us/library/dd997386.aspx. –