1

重複の可能性:
リフレクションを介して Enum 値を取得する

mytype.ReflectedType.GetFields()ac# クラスで定義されている定数を取得できます。

実行時mytype.ReflectedType.XXXに c# クラス内で定義した特定の列挙型を取得するにはどうすればよいですか?

4

2 に答える 2

0

列挙型は実際にはクラスのメンバーではなく、クラスのスコープでのみ宣言されています。メソッドを使用して、GetNestedType別の内部で宣言されている型を取得できます。例:

public class Demo {
  public enum Values { Apha, Beta }
}

Type t = typeof(Demo).GetNestedType("Values");
于 2012-09-10T11:08:17.787 に答える
0

さて、あなたは試すことができます

(int)((reflectedType.GetEnumValues()
                    .Zip(reflectedType.GetEnumNames(), (v, n) => new { v, n })
                    .Where(p => p.n == FieldName)
                    .Single()).v)

これにより、列挙定数の数値が得られます。ただし、コンパイル時に実際の列挙型を知る必要があるため、列挙値を取得することはできません。

于 2012-09-10T11:09:40.140 に答える