Genauer Code versuche ich zu bauen:Warum ist das eine ungültige Varianz?
public interface IMapContainer<out T> where T : MapRoomBase
{
String GetName();
IEnumerable<T> GetRooms();
}
Ich erhalte diese Fehlermeldung: Ungültige Varianz: Der Typ-Parameter ‚T‘ muss invariant gültig auf ‚MapLibrary.IMapContainer.GetRooms()‘ sein. "T" ist kovariant.
Ich hatte den Eindruck, dass dies gültig wäre, da IEnumerable einfach die Elemente zurückgibt und keine hinzugefügt werden können. Warum ist das nicht sicher + gültig?
Es tut mir leid, aber warum 'out T'? Brauchst du das "out"? –
Warum ist T ein out Parameter von Ihrem Interface? Was versuchst du zu erreichen? Aus meiner Sicht sieht das komisch/falsch aus. –
@Xtian, Andre, http://msdn.microsoft.com/en-us/library/dd997386.aspx. –