C#枚举-可能具有双重ID

本文关键字:ID 枚举 | 更新日期: 2023-09-27 18:21:35

我刚刚注意到你可以在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
}

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

C#枚举-可能具有双重ID

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

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

假设0和1代表性别,这样男人和男孩就有相同的性别值。