【发布时间】:2013-01-10 22:00:10
【问题描述】:
我想创建一个动态 GUI,将 Enum 的所有选项列为按钮。因此,我需要一种将 Enum 类型传递给方法并取回包含 enum 类型可以是的所有选项的字符串数组的方法。
例如,给定文件 Foo.cs 中的 Enum 声明:
public Enum Fruits {
Apple,
Orange,
Peach
};
public class Foo { ... }
我想要这个返回:
{ "Apple", "Orange", "Peach" }
我经历了几次代码排列。现在我有以下但我收到一个错误“找不到类型或命名空间名称'enumeratedType'”
public static string[] EnumToStringArray (System.Type enumeratedType) {
int enumSize = sizeof(enumeratedType);
string[] enumStrings = new string[enumSize];
for (int i = 0 ; i < enumSize ; i++) {
enumStrings[i] = enumeratedType.getValues()[i].toString();
}
return enumStrings;
}
我正在尝试做的事情可能吗?我已经根据这个问题Using sentinal values in C# enum (size of enum at compile time)? 中的信息尝试了几次完整的重写,但我无法让它工作。
【问题讨论】:
-
Enum.GetNames(typeof (Fruits)); -
这可能是使用反射和PropertInfo 类列出事物的情况
-
酷,谢谢亚历山大!完美答案!
标签: c# arrays string enums namespaces