Подтвердить что ты не робот

Должно ли перечисление С# заканчиваться точкой с запятой?

В С#, кажется, что определение перечисления работает с или без двоеточия в конце:

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

Эта страница С# из MSDN показывает перечисления, заканчивающиеся точкой с запятой, за исключением CarOptions.

Я не нашел окончательной ссылки, и оба способа работают без предупреждений компилятора.

Так должна ли быть конечная точка с запятой или нет?

4b9b3361

Ответ 1

Из спецификации С#:

14.1 Объявления перечисления

Объявление enum объявляет новый тип перечисления. Объявление перечисления начинается с ключевого слова enum и определяет имя, доступность, базовый тип и члены перечисления.

  • атрибуты выберите
  • enum-modifiers opt
  • идентификатор перечисления
  • enum-base opt
  • enum-body
  • ; выберите

Таким образом, точка с запятой одиночная разрешена, но необязательна.

Ответ 2

В то время как спецификация С# допускает необязательную точку с запятой, правила кодирования в правилах для StyleCop (SA1106) диктуют, что если точка с запятой является необязательной, ее нельзя использовать.

Ответ 3

Подумайте об enum как классе. Классам не нужны точки с запятой. Точки с запятой в примере, скорее всего, будут помещены для эстетики. Точка с запятой избыточна, но, как мы знаем, компилятор не жалуется на такие точки с запятой. Например

public enum MyEnum
{
    a,
    b,
    c
};

Это также может быть

public enum MyEnum
{
    a,
    b,
    c
}