说我有以下课程:
class Animal { public long Id { get; set; } public string Name { get; set; } } class Dog:Animal { public void sniffBum() { Console.WriteLine("sniff sniff sniff"); } }
如果我有动物实例,我该如何将其投射到狗身上?
像这样的东西:
Animal a = new Animal(); if ( some logic to determine that this animal is a dog ) { Dog d = (Dog)a; d.sniffBum(); }
基本上我不能使用接口.我将永远有一个Animal对象从我的数据库中出来.狗没有比Animal更多的参数,只有新的方法.
我可以创建一个新的Dog对象,并传递值,(或者有一个类型为Animal的构造函数),但这看起来很麻烦.