Ich bin ziemlich Neuling bei C# und habe hier zu diesem Thema gesucht. Ich denke, ich vermisse etwas Grundlegendes, also entschuldige mich, wenn das eine dumme Frage ist.Downcasting - Grundlagen
Ich habe zwei Objekte FullAlbum und Album. FullAlbum erbt von Album. Ich versuche, ein Album-Objekt in ein FullAlbum-Objekt umzuwandeln, damit ich damit arbeiten kann. Ich dachte, das wäre so einfach wie 'Downcasting' von Album zu FullAlbum, aber ich kann es nicht zum Laufen bringen, ich bekomme einen Laufzeitfehler, der besagt, dass es nicht von einem zum anderen konvertieren kann.
Ich habe bereits ein Album-Objekt _Album, das beim Debuggen ausgefüllt wird. Ich versuche es dann;
Ich erwarte, dass dies alle Eigenschaften von _album zu FullAlbum kopiert. Verpasse ich den Punkt?
Mögliche Duplikate von [C# Vererbung & Casting] (http://StackOverflow.com/questions/4453242/c-sharp-inheritance-casting) – Neolisk
"* Ich erwarte, dass dies alle Eigenschaften kopiert es von _album zu FullAlbum. Verpasse ich den Punkt? * "Ja. Casting kopiert keine Eigenschaften, sondern ändert lediglich das Verständnis des Compilers darüber, welchen Datentyp eine Variable hat. –
Ein Ansatz zur Lösung Ihres Problems wäre die Erstellung eines FullAlbum-Konstruktors, der einen Typus von Album, und dann setzen Sie alle Eigenschaften von FullAlbum, die Sie innerhalb des Konstruktors benötigen. Es gibt einige Lösungen [hier] (http://stackoverflow.com/questions/729527/is-it-possible-to-assign-a-base-class) -Objekt-zu-einer-abgeleiteten-Klasse-Referenz-mit-a), die dabei helfen kann .. – Mash