sagen, dass ich die folgenden Klassen:Wie verwandle ich eine Animal-Instanz in eine Dog-Instanz?
class Animal
{
public long Id { get; set; }
public string Name { get; set; }
}
class Dog:Animal
{
public void sniffBum()
{
Console.WriteLine("sniff sniff sniff");
}
}
Wenn ich eine Instanz von Animal
haben, wie ich warf ihm einen Dog
? Etwas wie folgt aus:
Animal a = new Animal();
if (some logic to determine that this animal is a dog)
{
Dog d = (Dog)a;
d.sniffBum();
}
Im Grunde kann ich nicht Schnittstellen verwenden. Ich werde immer ein Animal
Objekt haben, das so aus meiner Datenbank kommt. Dog
hat keine Parameter mehr als Animal
hat nur neue Methoden.
Ich könnte nur ein neues Dog
-Objekt erstellen und die Werte übergeben, (oder haben einen Konstruktor, der einen Typ Animal
nimmt), aber das scheint nur chaotisch.
zu verwenden, wenn alle Objekte von Typ 'Tier sind 'Sie müssen den Typ auch in Ihrer Datenbank in irgendeiner Weise speichern – WiiMaxx
Einen Konstruktor zu haben, der einen Parameter vom Typ' Animal' nimmt, ist überhaupt nicht unordentlich IMO – Kamyar
ist Ihre 'Animal' Klasse modifizierbar? – WiiMaxx