如何使用其名称调用方法?

时间:2011-09-09 01:53:01

标签: c# .net

我有一个带有一些方法的对象,我想使用方法名称作为字符串调用方法。

object obj;
obj.method();

3 个答案:

答案 0 :(得分:10)

给定一个带有签名void MethodName(int num)的方法MethodName,它将完成如下操作:

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

希望这有帮助。

答案 1 :(得分:2)

除了反思之外,您可能还想查看dynamic调用;这是调度方法调用的后期(即在运行时而不是编译时)。

答案 2 :(得分:0)

object obj;
var dyn = (dynamic) obj;
dyn.method();