我想知道在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);
            }

10-06 07:16