mis*_*ghi 2 c# enumeration casting interface
我有100个类,有一些类似的元素和一些独特的.我创建了一个界面来命名那些相似的项目,例如:interface IAnimal.我通常做的是:
class dog : IAnimal
Run Code Online (Sandbox Code Playgroud)
但是有100个课程,我不觉得他们全部都在寻找那些我可以应用IAnimal的课程.
我想要做的是:
dog scruffy = new dog();
cat ruffles = new cat();
IAnimal[] animals = new IAnimal[] {scruffy as IAnimal, ruffles as IAnimal} // gives null
Run Code Online (Sandbox Code Playgroud)
要么
IAnimal[] animals = new IAnimal[] {(IAnimal)scruffy, (IAnimal)ruffles} //throws exception
Run Code Online (Sandbox Code Playgroud)
然后做
foreach (IAnimal animal in animals)
{
animal.eat();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让c#让我把ruffles和scruffy视为一个IAnimal而不必写:IAnimal在写这个类时.
谢谢!
编辑(不是懒惰):类是从sql存储的proc元数据生成的,这意味着每次生成它时我都必须返回并添加它们,或者修改代码生成器以识别接口中的成员,实际上这不是一个坏主意.我希望有某种泛型方法或者某种东西.