我正在寻找实现此类代码的方法:
public enum Enum1
{
a=0,b
}
string enumName="Enum1";
Enum[] myEnum = (Enum[])Enum.GetValues(typeof(enumName));
我希望以他们的名字得到一组枚举;但“typeof”部分不起作用。请帮忙。
答案 0 :(得分:5)
typeof
是一个编译时运算符,显然只适用于编译时已知的类型。
如果您需要使用string
加载某种类型,则可以改为使用Type.GetType()
方法:
Enum[] myEnum = (Enum[])Enum.GetValues(Type.GetType(enumName));
但请记住,您通常需要完整的命名空间,而不仅仅是类名。例如:"MyNamespace.Enums.Enum1"
。
请参阅MSDN