Используйте механизмы полиморфизма, чтобы вам не нужно было знать тип объекта.
Сделайте myMethod
абстрактным методом myAbstarctClass
и предоставьте реализации как MyNewAbstractClass1
, так и MyNewAbstractClass2
.
Изменить myAbstractClass1.returnMyObject()
, чтобы вернуть myAbstarctClass
(не object
).
Затем можно написать код теста в Main
:
...
myAbstarctClass obj1 = mac1.returnMyObject();
myAbstarctClass obj2 = mac2.returnMyObject();
obj1.myMethod(); // calls MyNewAbstractClass1.myMethod()
// no if statement required!
obj2.myMethod(); // calls MyNewAbstractClass2.myMethod()
// no if statement required!
Console.ReadKey();
Редактировать: Это можно еще более упростить, поскольку методы returnMyObject()
больше не нужны - они просто возвращают объект, который у вас уже есть. Тестовый код теперь просто:
mac1.myMethod();
mac2.myMethod();
// etc...
Console.ReadKey();