2011-09-09 23 views
6

私はいくつかのメソッドを持つオブジェクトを持っているので、メソッド名を文字列としてだけ使用してメソッドを呼び出す必要があります。名前を使用してメソッドを呼び出す方法は?

MethodInfo method = obj.GetType().GetMethod("MethodName", 
     BindingFlags.Public|BindingFlags.Instance) 
    method.Invoke(obj, 4) // void method 

・ホープ、このことができます:署名void MethodName(int num)とメソッドmethodNameを考える

object obj; 
obj.method(); 
+1

あなたがしたいことがわかっています。しかしあなたの質問は本当に混乱しています...あなたの質問を編集してください。 –

答えて

8

が、それは次のように行われます。

+0

それは方法です。 – Amged

2

リフレクションに加えて、dynamicの呼び出しを参照することもできます。 (すなわち、コンパイル時とは対照的に実行時に)メソッド呼出しのディスパッチである。

0
object obj; 
var dyn = (dynamic) obj; 
dyn.method(); 
+2

はい、シンボル 'method'はコード内にリテラルとして現れなければなりません。 –

関連する問題