У меня есть пара классов, все они происходят от одного базового типа.
class basetype{}
class TypeA : basetype{}
class TypeB : basetype{}
...
Количество из них хранится в списке.
List<basetype> myObjects
Как всегда, каждый из этих типов должен обрабатываться по-разному. Теперь у меня есть пара методов для их обработки и один метод, который принимает базовый тип в качестве параметра.
HandleTypes(TypeA obj){}
HandleTypes(TypeB obj){}
HandleTypes(basetype obj)
В настоящее время мой HandleAllTypes выглядит так:
string name = obj.GetType().Name
switch(name)
{
case "TypeA":
return HandleTypes(obj as TypeA);
case "TypeB":
return HandleTypes(obj as TypeB);
....
}
теперь это дерьмо. Есть ли способ, подобный
HandleTypes(obj ?"as derived type"?)
Искал через MSDN и другие источники, ничего не нашел.