在.NET
可以有多个enum
为同整数值?
例如。
public enum PersonGender
{
Unknown = 0,
Male = 1,
Female = 2,
Intersex = 3,
Indeterminate = 3,
NonStated = 9,
InadequatelyDescribed = 9
}
在C#,这是允许的,因为每C#语言Specication ,第4版。
第1.10 Enums
没有提到的可能性,但后来在第14 Enums
,我们看到(在14.3
):
多个枚举成员可以共享同一个关联值。 这个例子
enum Color {
Red,
Green,
Blue,
Max = Blue
}
示出了一个枚举,其中两个枚举成员- Blue
和Max
-具有相同的相关联值。
这工作正常。 我们绝对没有错,你发布的代码。 它编译就好和代码工作,需要提醒的是
PersonGender.NonStated == PersonGender.InadequatelyDescribed
我发现与此相关的问题,这个StackOverflow的职位。 我认为这是如何工作非常明智的讨论。 非唯一枚举值
现在,我也想补充一点,这是我认为这将是一个不明确(因此不正确的)使用枚举。 它编写的代码,是有道理的给别人阅读它是很重要的,在这种情况下,我会通过此枚举被推迟。
我的建议是一个枚举不会在你的上下文中使用,而不是您可以使用创建一个类和方法可以解决你的目的的正确的事情。 像这样的事情在你的类: -
class A
{
static readonly ABCD= new Dictionary<int,string>
{
{ 1, "X" },
{ 2, "X" },
{ 3, "Y" }
{ 4, "Y" }
}
}