Heim >Backend-Entwicklung >C++ >Warum kann keine 'List' in C#einer Variablen 'list' zugewiesen werden?
Warum kann der Objektwert
nicht Variable nicht? List<string>
List<object>
In C#versuchen Sie, Variablen
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!