次のクラスがあるとします。
class Animal
{
public long Id { get; set; }
public string Name { get; set; }
}
class Dog:Animal
{
public void sniffBum()
{
Console.WriteLine("sniff sniff sniff");
}
}
のインスタンスがある場合、Animal
それを にキャストするにはどうすればよいDog
ですか? このようなもの:
Animal a = new Animal();
if ( some logic to determine that this animal is a dog )
{
Dog d = (Dog)a;
d.sniffBum();
}
基本的に、インターフェイスを使用できません。そのように、データベースから常にAnimal
オブジェクトが出てきます。Dog
持っている以上のパラメータはAnimal
なく、新しいメソッドだけです。
新しいDog
オブジェクトを作成して値を渡すこともできますが (または type を受け取るコンストラクターを使用することもできますAnimal
)、これは面倒です。