enum Answer : int { Yes = 1, No = 2 }
Answer answer = (Answer)100;
它抛出,但我不想要它。怎么样?
答案 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)