你有同一个整数的多个枚举值吗?
在.NET
中,您可以为同一个整数设置多个enum
值吗?
例如。
public enum PersonGender { Unknown = 0, Male = 1, Female = 2, Intersex = 3, Indeterminate = 3, NonStated = 9, InadequatelyDescribed = 9 }
在C#中,根据C#语言规范 ,版本4允许这样做。
第1.10 Enums
节1.10 Enums
没有提到可能性,但是在第14 Enums
节14 Enums
,我们看到(在14.3
):
多个枚举成员可以共享相同的关联值。 这个例子
enum Color { Red, Green, Blue, Max = Blue }
显示一个枚举,其中两个枚举成员 – Blue
和Max
– 具有相同的关联值。
这很好。 您发布的代码绝对没有错。 它编译得很好并且在代码中工作,需要注意的是
PersonGender.NonStated == PersonGender.InadequatelyDescribed
我发现这个StackOverflowpost与这个问题有关。 我认为这是如何工作的非常明智的讨论。 非唯一枚举值
现在,我可能还会补充一点,我认为这将是一个含糊不清(因此也是不正确的)枚举的用法。 编写对于阅读它的其他人有意义的代码很重要,在这种情况下,我会被这个枚举推迟。
我建议枚举在你的上下文中使用是不对的,你可以使用创建一个可以解决你的目的的类和方法。 你class上有类似的东西: –
class A { static readonly ABCD= new Dictionary { { 1, "X" }, { 2, "X" }, { 3, "Y" } { 4, "Y" } } }