Я заметил, когда я имею [Serializable]
вместо [Serializable()]
, код все еще компилирует.
Существует ли правило для этого, что можно опустить круглые скобки? Действительно ли это - хорошая практика? Это кажется более читаемым мне, если я не пропускаю что-то.
Нет никаких конкретных правил относительно передовых методов, которые я видел где-либо в этой теме.
Обычно я считаю, что люди, которые вводят свои атрибуты вручную, пропускают пустые скобки, но генерация кода почти всегда явно включает их.
Да, пропуск атрибута разрешен с точки зрения языка. Я не знаю каких-либо передовых практик, связанных с этим, но в целом я считаю, что разработчики опускают скобки, если они не нужны.
Вы можете пропустить ()
, когда конструктор атрибута, который вы хотите использовать, не имеет параметров, и вы не хотите укажите любые необязательные параметры (значения свойств).
Подробнее см. здесь .
Да, скобки можно опустить.
[Serializable]
[Serializable()]
[SerializableAttribute]
[SerializableAttribute()]
Есть 4 способа записать один и тот же атрибут.
Обычно часть атрибута
всегда опускается.
Пустые ()
обычно также опускаются, но на самом деле это не имеет значения. И, конечно же, они понадобятся вам для установки каких-либо параметров или свойств.