我有一个带有一些方法的对象,我想使用方法名称作为字符串调用方法。
object obj;
obj.method();
答案 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();