缺少枚举上的最后一项

Rub*_*ias 3 c# enums visual-studio-2008

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

public enum DayOfWeek
{
    Sunday    = 0,
    Monday    = 1,
    Tuesday   = 2,
    Wednesday = 3,
    Thursday  = 4,
    Friday    = 5,
    Saturday  = 6, // note this comma
}
Run Code Online (Sandbox Code Playgroud)

这种行为背后有什么理由吗?

Joe*_*oey 8

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

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

看一下语法:

enum-declaration:
  attributes opt enum-modifiers optenum identifier enum-base opt enum-body ;opt

枚举:
  : 整数型

enum-body:
  { enum-member-declarations opt }
  { enum-member-declarations , }

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

enum-member-declaration:
  attributes opt标识符
  属性opt标识符=constant-expression

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