Kovarianz, Kontravarianz und Invarianz beschreiben, wie sich die Vererbungshierarchie des vorhandenen Typs ändert, wenn sie einer Transformation unterzogen wird (z. B. Verwendung in Generika).
Wenn die Transformation die Reihenfolge der ursprünglichen Hierarchie beibehält, ist sie "kovariant".
Wenn es es umkehrt, ist es "kontravariant".
Wenn es bricht, ist es "invariant".
Warum funktioniert das nicht?
%Vor%
Ist das ein Fehler im Dictionary Casting-Mechanismus oder in meinem Denken, dass dies erlaubt sein sollte?
Danke.
19.12.2011, 20:34
Es fällt mir schwer, das herauszufinden. Sagen wir, ich habe den folgenden Code:
%Vor%
Warum führt die Zuweisung zu einem Kompilierungsfehler? Der Fehler ist etwas wie:
%Vor%
Nach meinem Verständnis von Kovarianz gibt die getMammals()...
26.07.2009, 11:12
Ich habe diese handliche, generische Funktion zum Konvertieren einer Sammlung von Sammlungen in einen einzigen Satz geschrieben:
%Vor%
Dann habe ich versucht, es anzurufen:
%Vor%
und ich habe den folgenden Fehler erhalten:
%Vor%
Ein...
20.11.2009, 17:50
Warum funktioniert das nicht? Kann ich Delegatkovarianz nicht richtig verstehen?
%Vor%
26.02.2010, 21:00
Ich habe ein Buch , das die Kontravarianz / Kovarianz wie folgt erklärt:
Ein Delegat kann spezifischere Parameter als sein Methodenziel haben. Dies wird Contravarianz genannt
Der Rückgabetyp eines Delegaten kann weniger spezifisch al...
23.07.2011, 01:57