Можете ли вы опустить скобки в атрибутах без параметров? - PullRequest
4 голосов
/ 15 марта 2010

Я заметил, что когда у меня [Serializable] вместо [Serializable()], код все еще компилируется.

Есть ли правило для этого, что вы можете опустить скобки? Это хорошая практика? Это кажется мне более читабельным, если я что-то упустил.

Ответы [ 4 ]

6 голосов
/ 15 марта 2010

Да, вы можете опустить круглые скобки.

 [Serializable]  
 [Serializable()]
 [SerializableAttribute] 
 [SerializableAttribute()]

Есть 4 способа написать один и тот же атрибут.

Общая практика заключается в том, чтобы всегда пропустить Attribute часть.
Пустые () также обычно опускаются, но это действительно не имеет значения. И, конечно же, они понадобятся вам для установки любых параметров или свойств.

6 голосов
/ 15 марта 2010

Нет конкретного правила в отношении лучших практик, которые я видел нигде по этой теме.

Как правило, я нахожу, что люди, которые вручную вводят свои атрибуты, пропускают пустые парены, но генерация кода почти всегда явно включает их.

2 голосов
/ 15 марта 2010

Вы можете пропустить (), когда у конструктора атрибута, который вы хотите использовать, нет параметров, и вы не хотите указывать какие-либо дополнительные параметры (значения свойств).

См. здесь для более подробной информации

1 голос
/ 15 марта 2010

Да, пропуск атрибута допустим с точки зрения языка. Я не знаю каких-либо лучших практик, связанных с этим, но в целом я считаю, что разработчики опускают парены, если они не нужны.

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