У меня есть следующий класс:
class Object
{
...
Method();
}
И ряд классов, которые его наследуют:
class ObjectVariant1 : Object
{
...
Method1();
}
class ObjectVariant2 : Object
{
...
Method2();
}
У меня есть список, в который помещаются все объекты:
List<Object> objectList = new List<Object>();
Я хочу иметь возможность просматривать список, и для каждого члена я хочу иметь возможность вызывать MethodX () в классе вариантов, а не унаследованном Method ().
Я нашел единственный способ сделать это следующим образом:
foreach (var obj in objectList)
{
if (obj is ObjectVariant1)
{
ObjectVariant1 newObj = (ObjectVariant1)obj;
newObj.Method();
}
if (obj is ObjectVariant2)
{
ObjectVariant2 newObj = (ObjectVariant2)obj;
newObj.Method();
}
}
Однако я хотел бы иметь возможность легко добавлять новые классы ObjectVariant без необходимости добавлять дополнительные проверки, подобные этим.Есть ли способ автоматизировать цикл foreach без необходимости добавлять новую проверку для каждого класса, который я создаю?
Спасибо!