Heim >Backend-Entwicklung >C++ >Warum kann keine 'List' in C#einer Variablen 'list' zugewiesen werden?

Warum kann keine 'List' in C#einer Variablen 'list' zugewiesen werden?

Barbara Streisand
Barbara StreisandOriginal
2025-01-28 13:46:09397Durchsuche

Why Can't a `List` Be Assigned to a `List` Variable in C#?

Warum kann der Objektwert

nicht Variable nicht? List<string> List<object> In C#versuchen Sie, Variablen

Objekte zuzuweisen, die während der Kompilierung Fehler verursachen können. Diese Operation ist nicht erlaubt, selbst wenn sie explizit konvertiert wird. Erforschen wir das Prinzip dahinter:

List<string> Betrachten Sie die folgende Szene: List<object>

Wenn diese Konvertierung erfolgreich ausgeführt werden kann, was wird dann passieren, wenn Sie der Liste

eine Art von
<code class="language-csharp">List<string> sl = new List<string>();
List<object> ol;
ol = sl; // 产生编译时错误</code>
hinzufügen? Dadurch wird in der Liste

eine Inkonsistenz erzeugt, da die Liste ol nur die Zeichenfolge erwartet. Wenn Sie die Liste durchqueren, verursacht die Begegnung auf die Foo -Instanz die Klassenkonvertierungsanomalie, was darauf hinweist, dass sie nicht in eine Zeichenfolge konvertiert werden kann. sl sl Im Gegenteil kann die Umwandlung von zu sl nützlich sein. Durch die Konvertierung von einer allgemeineren Klasse () in eine spezifischere Klasse (Foo) wird sichergestellt, dass das Hinzufügen von Elementen zur String -Liste die Einschränkungen der Objektliste nicht verletzt. C# unterstützt diese Art der Konvertierung jedoch möglicherweise nicht.

Das obige ist der detaillierte Inhalt vonWarum kann keine 'List' in C#einer Variablen 'list' zugewiesen werden?. 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