C#enums应该以分号结尾吗?

abe*_*nky 27 .net c# enums

在C#中,似乎定义枚举在末尾使用或不使用分号:

public enum DaysOfWeek
{ Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday} ; //Optional Semicolon?
Run Code Online (Sandbox Code Playgroud)

来自MSDN的这个C#页面显示以分号结尾的枚举,除了CarOptions.

我没有找到任何明确的引用,并且两种方式似乎都可以在没有编译器警告的情况下工作.

那么是否应该有最终的分号?

Tim*_*ter 34

C#规范(通过archive.org):

14.1枚举声明

枚举声明声明了一个新的枚举类型.枚举声明以关键字enum开头,并定义枚举的名称,可访问性,基础类型和成员.

  • 属性选择
  • 枚举修饰符选择
  • 枚举标识符
  • enum-base opt
  • 枚举体
  • ; 选择

因此,一个单一末分号允许的,但可选的.


doc*_*ess 15

虽然C#规范允许使用可选分号,但StyleCop(SA1106)规则中的编码指南规定如果分号是可选的,则不使用分号.

  • 这听起来有些诙谐(并且确实如此),但微软并不完全以下列标准而闻名,包括他们自己的标准. (7认同)

Geo*_*-it 6

把enum想象成一个班级.这些类不需要分号.示例中的分号最有可能用于美学.分号是多余的,但正如我们所知,编译器不会抱怨这样的分号.例如

public enum MyEnum
{
    a,
    b,
    c
};
Run Code Online (Sandbox Code Playgroud)

这也可以

public enum MyEnum
{
    a,
    b,
    c
}
Run Code Online (Sandbox Code Playgroud)

  • 类/枚举末尾的多个分号会导致编译时错误,只允许和忽略一个分号. (3认同)