我有一个汇编文件,用于定义enum
如下:
public enum DataType{
@byte,
@short,
@int,
@long,
...
}
当我通过调用typeof(DataType).GetEnumNames()
或Enum.GetNames(typeof(DataType))
方法获取其名称时,我将获得以下字符串文字:
["byte", "short", "int", "long", ...]
。
如何获得元素的确切名称?
命名枚举元素有什么错误吗?
答案 0 :(得分:2)
您实际上在枚举中获得了这些字段的正确名称。如MSDN中所述:
关键字是预定义的保留标识符,对编译器有特殊含义。它们不能用作程序中的标识符,除非它们包含@作为前缀。例如,@ if是有效的标识符,但如果不是因为if是关键字。1
答案 1 :(得分:-1)
我认为您可以将它们分开:
string s = "";
List<string> l = new List<string>();
foreach(chat c in typeof(DataType).GetEnumNames())
{
if(c == '\"')
{
if(!s.Contains(','))
l.Add(s);
s = "";
}
else s += c;
}
然后你可以通过索引访问名称
更新:您可以用
替换该代码string[] names = Enum.GetNames(DataTypes);