比如有以下定义class Program { public static void F<T>() { } public static void F<T>(T a) { }}使用typeof(Program).GetMethod("F")会抛AmbiguousMatchException。如何才能获取到某个方法的MethodInfo呢
2 回答
慕斯王
TA贡献1864条经验 获得超2个赞
msdn:
当绑定到成员的操作导致一个以上的成员匹配绑定条件时引发的异常。无法继承此类。
当成员是以后期绑定的形式被调用且多个重载满足绑定条件时,或者当有多个成员与传递给仅能返回单个结果的反射方法(例如,Type..::.GetMethod 或Type..::.GetProperty)的绑定条件匹配时,引发 AmbiguousMatchException。
1就是你F方法有两个重载,一个得话你那样就不会有错了。GetMethod方法不是还有很多重载啊,有一个可以指定参数类型,用哪个就没问题了。
2或者使用GetMethods(“F”)
- 2 回答
- 0 关注
- 431 浏览
添加回答
举报
0/150
提交
取消