我想知道是否有一种方法可以防止带有重复键的enum进行编译?

例如下面的这个enum将编译

public enum EDuplicates
{
    Unique,
    Duplicate = 0,
    Keys = 1,
    Compilation = 1
}

虽然这段代码
Console.WriteLine(EDuplicates.Unique);
Console.WriteLine(EDuplicates.Duplicate);
Console.WriteLine(EDuplicates.Keys);
Console.WriteLine(EDuplicates.Compilation);

将打印
Duplicate
Duplicate
Keys
Keys

最佳答案

语言规范没有禁止这样做,因此任何兼容的C#编译器都应允许。您总是可以使Mono编译器禁止使用它-但是坦率地说,编写单元测试来扫描程序集中的枚举并以这种方式执行将更为简单。

10-04 15:11