4 回答

TA贡献1848条经验 获得超10个赞
c语言里的枚举实际上是结构体,枚举项是变量名,没法直接获得的……你可以再自己定义一个字符串数组:
char numberString[30][MAX_LENGTH]={"ZERO","ONE","TWO"}
在需要用到原来枚举的地方这样调用
numberString[num.ZERO]

TA贡献1779条经验 获得超6个赞
将枚举的值转换为对应的名字
inthashCode = Color.Red.GetHashCode(); stringenumParseStr = Enum.Parse(typeof(Color), hashCode.ToString()).ToString();Enum.Parse()得到的值是object类型的,我们要转换的是值,得到的是名字,因此ToString()得到名字。
将枚举的名字转换为对应的值
stringstr = Color.Red.ToString(); intenumParseInt = Convert.ToInt32(Enum.Parse(typeof(Color), str));这里要转换的是名字,得到的是值,因此用Convert.ToInt32()得到该值。

TA贡献1876条经验 获得超5个赞
tostring方法。
----------------
回答你的补充提问:
我觉得那样为什么要定义成枚举?定义成数组也许好些吧?或者定义哈希表之类的对应起来,
两者可以互相查。
- 4 回答
- 0 关注
- 173 浏览
添加回答
举报