Gav*_*ann 3 c# reflection methodinfo
sealed public class HMethod
{
public int Calc(string Method, int X1, int X2, int Y1, int Y2)
{
MethodInfo HMethodInfo = this.GetType().GetMethod(Method);
return (int)HMethodInfo.Invoke(
this,
new object[4] { X1, X2, Y1, Y2 }
);
}
int ManhattanH(int X1, int X2, int Y1, int Y2)
{
//Blah
}
int LineH(int X1, int X2, int Y1, int Y2)
{
//Blah
}
//Other Heuristics
}
Run Code Online (Sandbox Code Playgroud)
调用new HMethod().Calc("ManhattanH". X1, X2, Y1, Y2)
HMethodInfo时为null.创建一个空引用Exception.它应该调用通过文本传递的方法(从文本文件中获取)
已解决:方法是私有的.
Ser*_*-Tm 13
ManhattanH是私人方法.使此方法是公共的或使用BindingFlags.NonPublic.