可能重复:
通过反射获取枚举值
有了mytype.ReflectedType.GetFields()
我可以得到在 ac# 类中定义的常量。
如何在运行时mytype.ReflectedType.XXX
使用我在 c# 类中定义的某个枚举?
可能重复:
通过反射获取枚举值
有了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)
这将为您提供枚举常量的数值。但是,您无法获得枚举值,因为这需要在编译时知道真正的枚举类型。