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".
Diese Frage ist eine Fortsetzung meiner vorherigen Frage: Autofac: Mehrere kontravariante Implementierungen hinter einem Composite verbergen .
Ich versuche, die Grenzen dessen zu finden, was wir mit Autofacs Kovarianz- und Kontravarianzunter...
06.09.2011, 17:31
Ich denke, ich werde meine Probleme mit einigen Beispielen erklären.
%Vor%
Also brauche ich Kovarianz ..
%Vor%
Schön, es funktioniert. Dann möchte ich es benutzen:
%Vor%
Alles gut, aber der Repo muss auch Objekte einfügen. Mit einem...
09.11.2010, 14:34
Findest du Frage ist seltsam? ja was passiert ist auch komisch. lass es mich erklären.
Ich habe einen Ausschnitt aus dieser Kovarianz und Kontravarianz mit C # -Arrays
%Vor%
Jon Skeet erklärt, dass der obige Code ArrayTypeMismatchExcep...
14.07.2013, 15:40
Gibt es in diesem Beispiel eine bessere Möglichkeit, Covarianz nachzuahmen? Idealerweise würde ich gerne tun:
%Vor%
Aber KeyValuePair<TKey, TValue> ist nicht kovariant.
Stattdessen muss ich tun:
%Vor%
Gibt es einen besseren /...
16.02.2013, 11:52
Ich habe einige Probleme mit der Vererbung, da ich eine Gruppe von zusammenhängenden abstrakten Klassen habe, die alle zusammen überschrieben werden müssen, um eine Client-Implementierung zu erstellen. Idealerweise würde ich gerne Folgendes mach...
05.09.2008, 21:31
Die C # -Spezifikation besagt, dass ein Argumenttyp nicht gleichzeitig sowohl kovariant als auch kontravariant sein kann.
Dies ist offensichtlich, wenn Sie eine kovariante oder kontravariante Schnittstelle erstellen, dekorieren Sie Ihre Typpa...
24.12.2010, 20:22
Als Antwort auf eine weitere Frage Ich habe versucht, folgendes zu tun. Ich glaube nicht, dass ich diese Frage richtig interpretiert habe, aber ich frage mich, ob das Folgende irgendwie möglich ist (meine Versuche sind gescheitert) und wenn ni...
21.02.2012, 16:45
%Vor%
Der Aufruf der Methode wird nicht überprüft. Ich kann den Parameter nicht einmal wie folgt umsetzen:
%Vor%
Aus meiner Forschung habe ich herausgefunden, dass der Grund dafür, dass dies nicht erlaubt ist, die Typensicherheit ist. Wenn...
06.08.2009, 17:29
Ich möchte eine kovariante Klasse erstellen, die änderbar ist, also muss ich einen niedrigeren Typ hinzufügen, der an die Setter-Methode gebunden ist. Aber ich möchte auch die Setter-Methode, um ein Feld zu setzen, also denke ich, das Feld muss...
08.08.2012, 06:34
Ich habe Probleme zu verstehen, warum das folgende Snippet mir keinen Fehler gibt
%Vor%
Aber dieser, den ich wegen der generischen Typbeschränkung erwarten würde
%Vor%
Gibt diesen Fehler
%Vor%
Ich verwende VS2012 sp1 und .NET 4.5....
25.03.2013, 08:55