使用typeof在c#中按名称查找和枚举类

时间:2016-10-31 14:11:13

标签: c# .net enums

我正在寻找实现此类代码的方法:

public enum Enum1
{
    a=0,b
}

string enumName="Enum1";

Enum[] myEnum = (Enum[])Enum.GetValues(typeof(enumName));

我希望以他们的名字得到一组枚举;但“typeof”部分不起作用。请帮忙。

1 个答案:

答案 0 :(得分:5)

typeof是一个编译时运算符,显然只适用于编译时已知的类型。

如果您需要使用string加载某种类型,则可以改为使用Type.GetType()方法:

Enum[] myEnum = (Enum[])Enum.GetValues(Type.GetType(enumName));

但请记住,您通常需要完整的命名空间,而不仅仅是类名。例如:"MyNamespace.Enums.Enum1"

请参阅MSDN