当int不表示有效的枚举值时,有没有办法强制将int转换为枚举?

时间:2009-10-27 10:58:48

标签: c# .net enums

enum Answer : int { Yes = 1, No = 2 }
Answer answer = (Answer)100;

它抛出,但我不想要它。怎么样?

4 个答案:

答案 0 :(得分:7)

,它不会抛出。您的类型转换线完全符合您的要求。

其他:

enums 有意放宽接受“无效”值,这在使用位标志时是必要的。

答案 1 :(得分:0)

这违背了枚举的概念......它们的存在是为了确保选项存在。如果你需要100个不同的值,我的建议是松开枚举。如果你只需要“另一个价值”,你可以这样做:

enum Answer : int { Yes = 1, No = 2, OtherValue }
Answer answer = Answer.OtherValue;

答案 2 :(得分:0)

你为什么要这样做?如果你没有使用枚举的功能,为什么不简单地使用int?

那就是说,代码对我没有任何问题:

Answer answer = (Answer)100;
Console.WriteLine(answer); // prints 100

答案 3 :(得分:0)

嗯,它抛出?你确定你使用的是C#吗?这段代码完全有效,可以做你想做的事情!