1

可能重复:
通过反射获取枚举值

有了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 回答