Ich bin nicht ganz sicher, ob das möglich ist, aber ich versuche es. Ich habe eine Methode, die ein Objekt zurückgibt, obwohl der eigentliche Typ Collection ist. Nun kann ich das Objekt einfach in die Sammlung umwandeln, indem ich
var myCollection = myObject as Collection<MyClassA>;
Das Problem, das ich habe, ist jedoch, dass Collection<MyClassA>
könnte alternativ sein Collection<MyClassB>
o Collection<MyClassC>
. Alle diese MyClassX
werden geerbt von MyBaseClass
Im Idealfall würde ich also gerne etwas wie folgt tun können
var myCollection = myObject as Collection<MyBaseClass>;
Dies führt jedoch beim Casting zu einer Ausnahme. Ist es möglich, dies in irgendeiner Weise zu tun? Ich verstehe, dass es innerhalb von .Net 4 sein kann?
Vielen Dank für die Hilfe.
EDIT: OK - Die bisherigen Antworten sind sehr nützlich, aber sie lösen nur den zweiten Teil der Lösung - Konvertierung/Casting von Sammlungen.
Ich bin mir immer noch nicht sicher, wie ich das Objekt zunächst in eine Sammlung umwandeln soll (ohne die Verwendung einer umfangreichen if-Anweisung für jeden der möglichen Typen)