In C# kann, warum nicht auch eine Liste<string> Objekt werden in einer Liste gespeichert<object> variable

Scheint es, dass ein List-Objekt kann nicht gespeichert werden, in eine List-variable in C#, und kann auch nicht explizit umgewandelt werden, Weg.

List<string> sl = new List<string>();
List<object> ol;
ol = sl;

Ergebnisse kann Nicht implizit konvertiert Art System.Collections.Generic.List<string> zu System.Collections.Generic.List<object>

Und dann...

List<string> sl = new List<string>();
List<object> ol;
ol = (List<object>)sl;

Ergebnisse in Nicht konvertieren Typ System.Collections.Generic.List<string> zu System.Collections.Generic.List<object>

Natürlich, Sie können es durch ziehen alles aus der string-Liste und setzen es wieder in ein zu einer Zeit, aber es ist ein ziemlich verworrenes Lösung.

Dies ist gonna change mit C# 4.0, so dass Sie vielleicht wollen, lookup-Kovarianz und Kontravarianz. Es wird erlauben, dass solche Dinge in einer Art sicheren Art und Weise.
Mehr oder weniger doppelte: stackoverflow.com/questions/317335/...
John> C#4 wird nicht zulassen. Denke, über ol.Add(new object());
Beantwortet von Jon Skeet hier: stackoverflow.com/a/2033921/1070906

InformationsquelleAutor Matt Sheppard | 2008-08-09

Schreibe einen Kommentar