0

Type.GetMember用来获取enum会员。当我的枚举值为Equals. 它返回Equals从对象继承的方法。那么我怎么能只检索枚举成员而不是对象中的成员。

枚举

enum MyEnum{
 Equals,
 NotEquals
}

MemberInfo[] member = typeof(MyEnum).GetMember("Equals"); 
//Returns both Equals method from object and also the member from enum.

那么我怎么能单独得到Equalsfrom呢?enum

4

3 回答 3

2

您需要使用绑定标志:

MemberInfo[] member = typeof(MyEnum).GetMember("Equals", BindingFlags.DeclaredOnly); 

或者只是使用GetField

FieldInfo member = typeof(MyEnum).GetField(BindingFlags.Static | BindingFlags.Public);
于 2015-09-08T08:50:27.200 回答
1

您可以使用 bindingflag DeclaredOnly

MemberInfo[] member = typeof(MyEnum).GetMember("Equals", BindingFlags.DeclaredOnly);

来自 msdn (DeclaredOnly):

指定只应考虑在提供的类型层次结构级别声明的成员。不考虑继承的成员。

于 2015-09-08T08:50:49.747 回答
0

为什么你不能只使用

Enum.Parse(typeof(MyEnum), "Equals");

如果我正确理解你的问题。

于 2015-09-08T09:07:00.007 回答