重複の可能性:
リフレクションを介して Enum 値を取得する
mytype.ReflectedType.GetFields()
ac# クラスで定義されている定数を取得できます。
実行時mytype.ReflectedType.XXX
に c# クラス内で定義した特定の列挙型を取得するにはどうすればよいですか?
重複の可能性:
リフレクションを介して Enum 値を取得する
mytype.ReflectedType.GetFields()
ac# クラスで定義されている定数を取得できます。
実行時mytype.ReflectedType.XXX
に c# クラス内で定義した特定の列挙型を取得するにはどうすればよいですか?
列挙型は実際にはクラスのメンバーではなく、クラスのスコープでのみ宣言されています。メソッドを使用して、GetNestedType
別の内部で宣言されている型を取得できます。例:
public class Demo {
public enum Values { Apha, Beta }
}
Type t = typeof(Demo).GetNestedType("Values");
さて、あなたは試すことができます
(int)((reflectedType.GetEnumValues()
.Zip(reflectedType.GetEnumNames(), (v, n) => new { v, n })
.Where(p => p.n == FieldName)
.Single()).v)
これにより、列挙定数の数値が得られます。ただし、コンパイル時に実際の列挙型を知る必要があるため、列挙値を取得することはできません。