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實例,我不想觸發我不應該做的事情。也許我錯了,但我對事件瞭解不多。