我有几个类,都派生自相同的基类型。
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和其他来源搜索,一无所获。