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

时间:2014-01-29 15:39:10

标签: c# .net enums

在C#中,似乎定义一个枚举在末尾有或没有分号:

public enum DaysOfWeek
{ Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday} ; //Optional Semicolon?

C# page from MSDN显示以分号结尾的枚举,但CarOptions除外。

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

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

3 个答案:

答案 0 :(得分:33)

来自C# specification(通过archive.org):

  

14.1枚举声明

     

枚举声明声明一个新的枚举类型。枚举声明   以关键字enum开头,并定义名称,辅助功能,   基础类型和枚举的成员。

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

最后允许使用单个分号,但是可选。

答案 1 :(得分:14)

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

答案 2 :(得分:6)

将enum视为一个类。这些类不需要分号。示例中的分号最有可能用于美学。分号是多余的,但正如我们所知,编译器不会抱怨这样的分号。例如

public enum MyEnum
{
    a,
    b,
    c
};

这也可以是

public enum MyEnum
{
    a,
    b,
    c
}