에서 상속받은 다양한 유형의 컬렉션 만들기 제목에서 제안한 것보다이 문제를 해결할 수있는 더 좋은 방법이있을 것입니다. 여기에 문제가 있습니다 :추상 부모 클래스 인
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의 인스턴스가 여러 개있을 수 있습니다. 그러지 말아야 할 일을 실행하고 싶지 않습니다. 어쩌면 내가 틀렸을 지 모르지만 나는 사건에 대해 많이 모른다.