私にはいくつかのクラスがあり、すべて同じ基本タイプから派生しています。
class basetype{}
class TypeA : basetype{}
class TypeB : basetype{}
...
それらの数はリストに保存されます。
List<basetype> myObjects
いつものように、これらのタイプはそれぞれ異なる方法で処理する必要があります。これで、それらを処理するための2つのメソッドと、パラメーターとしてベースタイプを受け取る1つのメソッドがあります。
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やその他のソースを検索しても、何も見つかりませんでした。