わかりました、これは私がやりたいことです:
public static void CallStaticMethod(Type myType, String methodName, Object[] parameters)
{
MethodInfo m = myType.GetMethod(methodName); // make this compile-time safe
m.Invoke(null, parameters); // methodName method is supposed to be static
}
これで、「methodName」が存在しない場合、myType.GetMethod(methodName)が実行時に失敗する可能性があります。
このコンパイル時を安全にする方法はありますか?
(パラメーターが正しいと仮定して)
どういうわけか次のようにメソッドを呼び出したいと思います。
CallStaticMethod(()=>MyType.MyMethod(), Object[] parameters)
ラムダ式内で引数を指定する必要があるため、これは機能しないことに注意してください。
つまり、メソッドのコンパイル時の安全なハンドルが必要です。typeof()を使用して型で取得できますが、メソッドで取得できますか?