为了账号安全,请及时绑定邮箱和手机立即绑定

非唯一枚举值

非唯一枚举值

C#
守候你守候我 2019-10-21 12:37:09
我试图掩盖edi文件上的索引位置...根据情况,我可能会在索引上放置2或3个东西。使用一个枚举隐藏“幻数”会很酷,并且惊讶地看到您可以将多个枚举分配给相同的值,如下所示:public enum Color{    Red = 1,    Blue = 1,    Green = 1}编译器对此很满意。我没想到这行得通。我不需要回退到枚举,因此我不必担心尝试返回,但这听起来很时髦。为什么CLR允许枚举有多个值,我应该为此使用结构吗?(一个结构似乎比枚举更重,这似乎行得通)
查看完整描述

3 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

那是完全合法的C#。从C#语言规范版本4.0,第14.3节:


多个枚举成员可以共享相同的关联值。这个例子


enum Color 

{

   Red,

   Green,

   Blue,

   Max = Blue

}

显示一个枚举,其中两个枚举成员Blue和Max具有相同的关联值。


查看完整回答
反对 回复 2019-10-21
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

相同的数值但名称不同,别无其他。可能是例如


public enum Color

{

   DefaultColor = 1,

   Red = 1,

   Blue = 2

}

在某些情况下可能有意义,但在很多情况下却没有意义。当您将这些值解析回并调用colorValue.ToString()时,您将获得最后一个作为字符串化值的值(在本例中为Red),但是您将失去默认颜色的概念,因为这是同一回事。至少以您建模数据的方式。如果要将其分开,则对不同的内容使用不同的值。


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 261 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信