c# - 如何在 C# 中创建类列表以在循环中迭代

标签 c# oop class inheritance list

假设我有类 animal 和类 catdog 扩展它。我想按照以下方式做一些事情:

foreach (class a in {cat, dog})  
    if (a.isValid(parameters))  
      doStuff();

isValid 是 animal 的静态方法,它只检查给定参数是否定义了给定类型的对象
doStuff 表示我正在做我认为不值得复制的事情
@你在说什么对象?希望我的其他编辑能解决这个问题
我不是从一个对象开始并试图确定它的类型。我从参数开始并尝试决定实例化为哪种动物类型。 所以像 BlueRaja 建议的东西,但不需要构造函数。

我唯一的选择是为每个类使用 switch 语句,这是我想避免的。

谢谢,
J-B

最佳答案

不知道为什么每个人都把它弄得这么复杂

foreach (Animal a in new Animal[] {new Cat(), new Dog()})  
    if (a.isValid(parameters))  
        doStuff();

关于c# - 如何在 C# 中创建类列表以在循环中迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2784693/

相关文章:

c# - WebSphere MQ .NET API

java - C代码如何不可重用而Java如何使用继承来拥有可重用代码?

java - 从父类重写方法

c# - 如何将图像列表添加到 WPF ListView ?

c# - 在 SqlGeometry 和 DbGeometry 之间转换

java - 解耦项目引用和依赖注入(inject)

c++ - 调用构造函数并初始化

c++ - 如何输出乘以用户创建的类c++

c++ - 错误 : no ‘’ member function declared in class ''

c# - DataGridView 没有列