你有同一个整数的多个枚举值吗?

CJ7*_*CJ7 6 .net c# clr enums

.NET你可以有多个enum对同一整数值?

例如.

public enum PersonGender
    {
        Unknown = 0,
        Male = 1,
        Female = 2,
        Intersex = 3,
        Indeterminate = 3,
        NonStated = 9,
        InadequatelyDescribed = 9
    }
Run Code Online (Sandbox Code Playgroud)

pax*_*blo 13

在C#中,根据C#语言规范,版本4 允许这样做.

该部分1.10 Enums未提及可能性,但在后面的章节中14 Enums,我们看到(in 14.3):


多个枚举成员可以共享相同的关联值.这个例子

enum Color {
   Red,
   Green,
   Blue,
   Max = Blue
}
Run Code Online (Sandbox Code Playgroud)

显示一个枚举,其中两个枚举成员 - BlueMax- 具有相同的关联值.

  • @David,它可能假设,如果您将*常量*分配给两个不同的枚举值,那么您犯错误的可能性非零,特别是如果这些值遍布各处:`enum x { a = 42,b = 17,c = 12,d = 314159,e = 271828,f = 17};`。如果您将一个已经存在的*枚举值*分配给一个枚举值,则可以安全地假设您*打算*这样做。 (2认同)
  • 我想你是正确的。这不是一个检查你是否在做正确事情的坏方法 (2认同)

p.s*_*w.g 4

效果很好。您发布的代码绝对没有问题。它编译得很好并且可以在代码中运行,但需要注意的是

PersonGender.NonStated == PersonGender.InadequatelyDescribed
Run Code Online (Sandbox Code Playgroud)