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