0
最有可能是比我在标题中的建议更好的方法来解决这个问题。这里是问题:创建一个从抽象父类继承的不同类型集合
abstract class BaseClass
{
abstract public void DoSomething();
}
class ChildClass : BaseClass
{
public override DoSomething();
}
class OtherClass
{
//Here is what I want to do for two elements
ChildClass foo = new ChildClass();
SomeOtherChildClass bar = new SomeOtherChildClass();
foo.DoSomething();
bar.DoSomething();
}
我想为更多的元素做到这一点。我不想让自己的变量,我不想为每个子类创建单独的列表。只要继承BaseClass并具有DoSomething(),我实际上并不想知道哪些子类存在。所以我可以做这样的事情:myColelction.ForEach(i => i.DoSomething());到
我想我需要一些相当宽松的集合。我想到了新元素的IEnumable和Concatting,但是当BaseClass是抽象时,你当然不能这么做。
替代方案(我能想到)是使用事件。但是可能有多个OtherClass实例,我不想触发我不应该做的事情。也许我错了,但我对事件了解不多。