This question already has answers here:
How to prevent duplicate values in enum?

(5个答案)



Non-unique enum values

(8个答案)


7年前关闭。




我只是注意到您可以在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
}

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

最佳答案

好的枚举用于赋予整数含义。当您说Second = 1时,这没什么意义,但请考虑一个类似的示例:

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

假设0和1代表性别,因此Man和Boy具有相同的性别值。

10-04 18:51