我想知道在c#中是否有一种方法可以执行一个方法,如果我们在字符串中只有它的名称?
string methodname="method"
this.RunMethod(methodname)
这样的事?
谢谢 :)
最佳答案
您可以创建一个通用方法来按需要在任何实例上按其名称调用方法:
public void RunMethodOn(object obj, String methodName,params Object[] args)
{
if(obj != null)
{
System.Reflection.MethodInfo method = null;
method = obj.GetType().GetMethod(methodName);
if (method != null)
method.Invoke(obj, args);
}
}
并根据您的要求使用它在自己的实例上调用方法:
public void RunMethod(String methodName,params Object[] args)
{
ExecuteOn(this, methodName, args);
}