我的源代码无效。
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语句?进入控制台。令牌化器工作,方法是公共的,这是我正在使用的代码。任何帮助,将不胜感激。感谢。
答案 0 :(得分:1)
如果要查找静态方法,则必须添加BindingFlagsEnum。
MethodInfo[] _m = _t.GetMethods(BindingFlags.Static|BindingFlags.Public );
答案 1 :(得分:0)
改为使用GetMethod
:
typeof(Help).GetMethod(tok[0]).Invoke(null,null);
由于该方法为**static**
,您需要在第一个参数中传递null
。