public Enum Days
{
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
Sunday = 7
}
现在我想知道如何获取枚举的整数值并将整数值转换为枚举
威尔
int dayNo = (int) Days.Monday;
将dayNo的值更改为1;
和
威尔
Days day = (Days) 2;
将Days.Tuesday分配给变量日?
这是解析的最佳方法吗?
答案 0 :(得分:7)
是的,这很容易检查:
Days d = (Days)3;
Console.WriteLine(d);
这将输出
Wednesday
作为最佳做法,enum
的名称应为Day
而不是Days
;上面的变量d
表示Day
而不是Days
。请参阅MSDN上的naming guidelines。
答案 1 :(得分:6)
是的,除了Enum
enum
public enum Days
{
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
Sunday = 7
}
要使用Enum.Parse,你必须提供一个字符串,所以如果你想从int转换你必须通过一个丑陋的字符串。
Days x = (Days)Enum.Parse(typeof(Days), "3");
Days y = (Days)Enum.Parse(typeof(Days), 3.ToString());
......周三都给你。
答案 2 :(得分:4)
总之,yes。
答案 3 :(得分:2)
您对枚举的理解是正确的。
如果您对此方法感觉更舒服,可以使用Enum.Parse从数字/名称转换为枚举类型,但它在可读性或性能方面没有任何好处。
奇怪的是,为了解析数字,你需要先调用ToString()
,因为Enum.Parse
没有整数重载。
从MSDN页面:
Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object.
答案 4 :(得分:1)
是的,它会。但是你在张贴之前试过吗?