Можно ли опустить круглую скобку от атрибутов без параметрических усилителей?

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

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

5
задан Wai Ha Lee 21 February 2016 в 16:23
поделиться

4 ответа

Нет никаких конкретных правил относительно передовых методов, которые я видел где-либо в этой теме.

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

7
ответ дан 18 December 2019 в 10:44
поделиться

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

1
ответ дан 18 December 2019 в 10:44
поделиться

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

Подробнее см. здесь .

2
ответ дан 18 December 2019 в 10:44
поделиться

Да, скобки можно опустить.

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

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

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

6
ответ дан 18 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: