2011-09-09 92 views
6

我有一些方法的對象,我想調用一個方法使用方法名稱作爲字符串只。如何使用名稱調用方法?

object obj; 
obj.method(); 
+1

知道我知道你想做什麼。但是你的問題很混亂......請嘗試編輯你的問題。 –

回答

8

給出的方法方法名與簽名void MethodName(int num),它會做類似:

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

希望這有助於。

+0

它是無效的方法。 – Amged

2

除了反思,你可能還想看看dynamic的調用;這是後期(即在運行時而不是編譯時)分派方法調用。

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

是的,但符號'方法'必須仍然在代碼中顯示爲文字。 – 2011-09-09 02:15:22