我正在使用反射并遇到错误:System.Reflection.TargetException:对象与目标类型不匹配因为我以为Type.GetMember(string)只会返回一个MemberInfo,但事实并非如此。Type.GetMember(string)我很好奇return的原因MemberInfo[]。其他反射方法如Type.GetProperty()和Type.GetMethod()返回它们各自的PropetyInfo和MethodInfo对象。当其他反射方法不Type.GetMember()返回数组时,返回数组的目的是什么?MemberInfo[]
2 回答
茅侃侃
TA贡献1842条经验 获得超21个赞
虽然有关超载的注释是正确的,但这似乎更像是“出于历史原因”的情况。
GetMethod(string)
被定义为返回唯一的匹配,或者AmbiguousMatchException
如果存在多个重载则抛出。 GetMember(string)
只是总是返回所有匹配项。
我想争论的焦点是,如果你不知道你要找什么样的成员,你也不知道有多少匹配项,所以最好返回所有匹配项。
调用该方法GetMembers
会更加一致,但这并不是轻易改变的事情。
- 2 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消