枚举上缺少最后一项

我正在寻找一些枚举选项,并在最后一个选项后发现了一个丢失的逗号。 举例来说, DayOfWeek枚举(按F12进入定义):

 public enum DayOfWeek { Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, // note this comma } 

这种行为背后有什么原因吗?

最后一个enum成员之后的逗号是可选的。 这可能是为了帮助自动代码生成,它可以在不考虑语法的情况下吐出东西。

逗号是否存在不会改变任何内容。

看一下语法:

枚举声明:
attributes opt enum-modifiers opt enum identifier enum-base opt enum-body ; 选择

枚举的基础:
: 积分型

枚举体:
{ enum-member-declarations opt }
{ enum-member-declarations , }

枚举成员声明:
枚举成员声明
enum-member-declarations , enum-member-declaration

枚举成员的声明:
属性 opt 标识符
attributes opt identifier = constant-expression

如您所见, 枚举体包含一个尾随逗号的选项。

我很确定没有一周的某一天丢失.. 🙂

你可以在枚举定义的末尾有一个可选的逗号(也可以不用)。 我想这只是一个方便的事情:如果世界发生变化,你必须在一周中添加一天:添加一个新行(并且可选地再次用逗号结束,为下一个定义新日期的人)。

编译器只是忽略了最后一个逗号。 它不需要在那里,但如果你把它放在一起也不是错误