在c#中使用typeof根据名称查找枚举类

本文关键字:查找 枚举 typeof | 更新日期: 2023-09-27 18:15:50

我正在寻找一种方法来实现这样的代码:

public enum Enum1
{
    a=0,b
}
string enumName="Enum1";
Enum[] myEnum = (Enum[])Enum.GetValues(typeof(enumName));

我想通过名称获得一组枚举;但是"typeof"部分不起作用。请帮助。

在c#中使用typeof根据名称查找枚举类

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

如果您需要使用string加载某个类型,您可以使用Type.GetType()方法代替:

Enum[] myEnum = (Enum[])Enum.GetValues(Type.GetType(enumName));
但是请记住,您通常需要完整的名称空间,而不仅仅是类名。例如:"MyNamespace.Enums.Enum1" .

查看MSDN