Порядок модификаторов функций в C # - PullRequest
4 голосов
/ 20 сентября 2010

Я хотел бы знать, существует ли стандарт для установки порядка модификаторов функций в C #. т.е.

public static void Method()
{}

static public void Method()
{}

оба хорошо работают, НО

когда я кодирую:

public void static Method()
{}

Я получаю следующую ошибку:

Модификатор члена 'static' должен предшествовать тип и имя члена

и

Метод должен иметь тип возврата

Ответы [ 3 ]

10 голосов
/ 20 сентября 2010

Объявления методов всегда должны следовать этому шаблону:

[modifiers] returnType methodName([parameters])

Не существует правила относительно порядка модификаторов, но они всегда должны предшествовать возвращаемому типу.

Я не думаю, что есть какой-то стандартный порядок, люди просто делают, как им заблагорассудится ... Лично я предпочитаю сначала поставить модификатор доступа (public, private и т. Д.), Затем модификатор static (если есть), то модификатор virtual, abstract или override (если применимо).

Подробности см. В спецификации C # (§10.6)

5 голосов
/ 20 сентября 2010

Проблема в том, что void не является модификатором - это тип возвращаемого значения. Все модификаторы должны предшествовать типу возврата.

Я почти уверен, что - это соглашение о заказе оригинальных модификаторов, но я не знаю, где это задокументировано.

Я бы всегда сначала писал о доступности (общедоступной и т. Д.).

1 голос
/ 20 сентября 2010

Нет определенного порядка для модификаторов метода.

Ниже приведена формальная грамматика из спецификации стандарта C # ...

Методы объявляются с помощью объявлений методов:
Метод декларирование:
заголовок метода method-body

Метод заголовок:
атрибуты opt модификаторы методов opt частичные opt тип возврата имя-члена список-параметров-типов неавтоматического (формальный список параметров opt ) пункты-параметра-типа-ограничения opt

**** метод-модификаторы: ***** * 1 032 новый
общественности
защищенный
внутренний
частный
Статическая
виртуальный
запечатаны
переопределения
аннотация
ехЬегп
возвращение типа:
тип
недействительный
член-имя:
Идентификатор
тип интерфейса Идентификатор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...