如何通过方法名称调用方法?

7

我有一个对象,其中包含一些方法,我想仅使用方法名称的字符串来调用一个方法。

object obj;
obj.method();

1
我知道你想做什么,但是你的问题真的很令人困惑...请尝试编辑你的问题。 - Jo Smo
3个回答

11

假设有一个方法MethodName,签名为void MethodName(int num),那么可以这样实现:

   MethodInfo method = obj.GetType().GetMethod("MethodName", 
         BindingFlags.Public|BindingFlags.Instance)
   method.Invoke(obj, 4) // void method
希望这可以帮到你。

如何调用非void的函数并获取返回值? - T.Todua

2

除了反射之外,您可能还需要查看动态调用; 这是方法调用的后期绑定(即在运行时而不是编译时)。


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

2
是的,但符号 method 仍必须作为代码中的文字出现。 - user166390

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接