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

C# 枚举索引行为

C# 枚举索引行为

C#
PIPIONE 2021-10-09 10:29:06
我偶然发现了以下示例代码,但我无法真正理解其背后的行为。我试图在 C# 文档中找到解释,但没有成功。enum Color { Red, Green = 3, Blue }public class Program{    public static void Main(string[] args)    {        Console.WriteLine((Color) 1);        Console.WriteLine((Color) 2);        Console.WriteLine((Color) 3);        Console.WriteLine((Color) 4);        Console.WriteLine((Color) 5);      }}}代码的输出是:12GreenBlue5看起来 Blue 获得了 Green+1 的索引,但在索引中只能向上工作,不能向下工作。那么为什么索引是这样工作的呢?
查看完整描述

2 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

您的代码有效:


enum Color 

   Red = 0, Green = 3, Blue = 4 

}

只是编译器为您填写了一些值。如果您不确定哪些值去哪里,只需每次都手动初始化它们。有时,当枚举足够大时,无论如何您都应该这样做。


查看完整回答
反对 回复 2021-10-09
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

我只能推测原因,但索引双向工作没有意义。

想象一下,如果您将最后一个索引覆盖为最大值,并且您将第一个索引设置为 0。这之间的值是什么会不明确,应该增加还是减少?

如果您希望它向下工作,您所要做的就是从较早的索引开始。稍后指定和索引为您提供了使用显式索引的选项,而不必担心弄乱顺序


查看完整回答
反对 回复 2021-10-09
  • 2 回答
  • 0 关注
  • 251 浏览

添加回答

举报

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