Heim >Backend-Entwicklung >C++ >Warum kann ich die Liste in C# 2.0 nicht zuweisen.

Warum kann ich die Liste in C# 2.0 nicht zuweisen.

Linda Hamilton
Linda HamiltonOriginal
2025-02-02 05:21:09668Durchsuche

Why Can't I Assign List to List in C# 2.0?

c# 2.0 Die generische Liste der Generika: LT;

c#Varianzcharakteristik bezieht sich auf die Fähigkeit, an kollaborativen oder umgekehrten Wert teilzunehmen. Versuchsliste & 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. Für die Lösung von C# 2.0 wird empfohlen, die Liste zu verwenden, um eine neue Liste zu erstellen, anstatt zu versuchen, die ursprüngliche Liste zu ändern.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn