如何防止枚举中的重复值? [英] How to prevent duplicate values in enum?

查看:30
本文介绍了如何防止枚举中的重复值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道有没有办法防止带有重复键的 enum 编译?

I wonder is there a way to prevent an enum with duplicate keys to compile?

例如下面的这个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 编译器来禁止它 - 但坦率地说,编写单元测试来扫描您的程序集以查找枚举并以这种方式强制执行它会更简单.

This isn't prohibited by the language specification, so any conformant C# compiler should allow it. You could always adapt the Mono compiler to forbid it - but frankly it would be simpler to write a unit test to scan your assemblies for enums and enforce it that way.

这篇关于如何防止枚举中的重复值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆