C#enums - 可能有双重ID

时间:2013-07-09 13:28:43

标签: c# .net enums unique

我刚注意到你可以在C#中创建这样的东西:

enum TestEnum
{
  First = 1,
  Second = 1,
  Third = 2
}

[TestMethod]
public void Test()
{
  TestEnum test = TestEnum.First;
  var en = (TestEnum) 1;//And en is now set to First
}

我们希望枚举值是唯一的。现在,我编写了一个单元测试,检查每个值是否仅在枚举中使用一次。是否有更好的方法来强制独特性?

1 个答案:

答案 0 :(得分:4)

好的枚举用于赋予整数意义。当你说Second = 1时没有意义,但想到一个像这样的例子:

enum HumanEnum
{
    Man = 1,
    Woman = 0,
    Lady = 0,
    Boy = 1,
    Girl = 0
}

假设0和1表示性别,这样Man和Boy就具有相同的性别价值。