同一个整数.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
没有明确提到这种可能性,但是,稍后在部分中14 Enums, 14.3
,我们看到:
多个
enum
成员可以共享相同的关联值。这个例子enum Color { Red, Green, Blue, Max = Blue }
显示
enum
其中两个enum
成员 -Blue
和Max
- 具有相同的关联值。
这很好用。您发布的代码绝对没有问题。它编译得很好并且可以在代码中工作,但需要注意的是
PersonGender.NonStated == PersonGender.InadequatelyDescribed
我发现这个 StackOverflow 帖子与这个问题有关。我认为这是如何工作的非常明智的讨论。非唯一枚举值
现在,我还可以补充一点,我认为这将是对枚举的模棱两可(因此是不正确的)使用。编写对其他人阅读有意义的代码很重要,在这种情况下,我会被这个枚举推迟。
我建议在您的上下文中使用枚举不是正确的事情,而是您可以使用创建一个可以解决您的目的的类和方法。在你的课堂上是这样的: -
class A
{
static readonly ABCD= new Dictionary<int,string>
{
{ 1, "X" },
{ 2, "X" },
{ 3, "Y" }
{ 4, "Y" }
}
}