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 に答える