使用Console.Readline中的字符串调用方法

时间:2011-01-14 05:00:33

标签: c# string class methods

我的源代码无效。

if (tok[1] == "?")
{
    Type _t = typeof(Help);
    Help _h = new Help();
    MethodInfo[] _m = _t.GetMethods();
    foreach (MethodInfo m in _m)
    {
        if (m.Name.CompareTo(tok[0]) == 0)
        {
            m.Invoke(_h, null);
        }
    }
}

当用户键入命令时,应该从不同的类调用静态方法到if语句?进入控制台。令牌化器工作,方法是公共的,这是我正在使用的代码。任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:1)

如果要查找静态方法,则必须添加BindingFlagsEnum。

MethodInfo[] _m = _t.GetMethods(BindingFlags.Static|BindingFlags.Public );

答案 1 :(得分:0)

改为使用GetMethod

typeof(Help).GetMethod(tok[0]).Invoke(null,null);

由于该方法为**static**,您需要在第一个参数中传递null