public dynamic obj1(dynamic obj2)
{
if (obj2.GetType() == typeof(Obj3)
{
//do something
}
if (obj2.GetType() == typeof(Obj4)
{
//do something else
}
if (obj2.GetType() == typeof(Obj5)
{
//do something else
}
//return something
}
これを改善する方法はありますか?私は約70種類のオブジェクトと比較するために反射を使用することはできません。これ以外にどのように改善できるかわかりません。動的オブジェクト、Ifステートメントで、この関数を改善する方法
この関数の呼び出し元は、右のタイプ(動的でない)に渡しされますが、それは、動的に返す方法私がある場合には、この1
:機能が長い場合は、ラムダを使用することはありませんもちろん、それから、あなたはこのように宣言したいですifの配列。あなたの声明が真であるかどうかをチェックするならば、この方法であなたは何の手続きもしません。 これはselectステートメントでも行うことができます。 – codemonkeyliketab
クラス自体(Obj-n)を変更することができる場合は、問題のコードブロックを含むメソッドを使用して、それらに共通のインターフェイスを配置します。 'dynamic'を使用しているので、C#は正しい実装にディスパッチします。 –
@Frank Jあなたは何を意味するのですか?私はあまりにもあなたに従っていると確信していません –