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
}
new HMethod().Calc("ManhattanH". X1, X2, Y1, Y2)
으로 전화 할 때 HMethodInfo가 null입니다. null 참조 Exception를 작성합니다. 텍스트를 통해 전달 된 메서드를 호출해야합니다 (텍스트 파일에서 가져온 것임)메서드 정보가 null을 반환하는 이유는 무엇입니까
해결 방법 : 메서드는 private입니다.
당신이 수동으로'BindingFlags.Instance을 포함해야'GetMethod' 바인딩 플래그를 주면, 잊지 마세요 | BindingFlags.NonPublic'이 아니라'BindingFlags.NonPublic'입니다. – aboveyou00