当调用Type.GetMember(string name, MemberTypes type, BindingFlags bindingAttr)
时,假设bindingAttr
是BindingFlags.Default
(即无关紧要),该信息何时不足以找到零个或一个成员。哪些类型的成员需要通过其他属性单独消除歧义?
多个覆盖将返回多个结果:
class X
{
public int GetX(){ return 1;}
public int GetX(string s){ return 2;}
}
var r = typeof(X).GetMember("GetX", MemberTypes.Method,
BindingFlags.Instance|BindingFlags.Public); // 2 items
请注意,指定Default
将始终返回0项-您至少需要Instance
或Static
。参见Type.GetMember:
必须指定BindingFlags.Instance或BindingFlags.Static才能获得返回。