Должно ли перечисление С# заканчиваться точкой с запятой?
В С#, кажется, что определение перечисления работает с или без двоеточия в конце:
public enum DaysOfWeek
{ Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday} ; //Optional Semicolon?
Эта страница С# из MSDN показывает перечисления, заканчивающиеся точкой с запятой, за исключением CarOptions
.
Я не нашел окончательной ссылки, и оба способа работают без предупреждений компилятора.
Так должна ли быть конечная точка с запятой или нет?
Ответы
Ответ 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
}