Heim >Backend-Entwicklung >C++ >Warum kann ich die Liste in C# 2.0 nicht zuweisen.
c# 2.0 Die generische Liste der Generika: LT;
Auch wenn es explizit transformiert wird, wird es fehlschlagen, was das Problem hervorhebt. Es sollte klar sein, dass dies kein Problem der Koordination ist. Um die Sicherheit der Zusammenstellung zu gewährleisten, ist diese Aufgabe eindeutig verboten.
<code class="language-csharp">List<动物> animalsList = new List<长颈鹿>();</code>Das potenzielle Risiko der Varianz kann durch das folgende Beispiel erklärt werden:
Dieser Code erscheint harmlos, kann jedoch zufälliges Verhalten und Datenschäden verursachen. Weisen Sie dem Basistyp (Tier) den abgeleiteten Typ (Löwen) zu, um die Verstöße gegen die Sicherheitsregeln zu ermöglichen.
<code class="language-csharp">List<长颈鹿> giraffes = new List<长颈鹿>(); giraffes.Add(new 长颈鹿()); List<动物> animals = giraffes; animals.Add(new 狮子());</code>Obwohl die Typdifferenz des Referenztyp -Checks während des Arrays die Laufzeit unterstützt, ist die Generika so konzipiert, dass sie die Sicherheit der Kompilierungstypen erreicht.
Einführung der Sicherheitsvarianzunterstützung in C# 4, jedoch nur auf Schnittstellen und in Auftrag gegebene Kommission beschränkt. Koordinaten dürfen für Func
und iEnumeration
verwendet werden, und Wechselrichter dürfen verwenden.
Das obige ist der detaillierte Inhalt vonWarum kann ich die Liste in C# 2.0 nicht zuweisen.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!