Подтвердить что ты не робот

Квадратный кронштейн Синтаксис над декларацией свойств

Я смотрю следующий синтаксис при просмотре кода С# (с использованием среды .NET 4.0):

    [XmlIgnore, Bindable(false)]
    public virtual FieldBase Field {get;set;}

Какова цель квадратных скобок над заголовком свойства?

4b9b3361

Ответ 1

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

Типы, которые являются атрибутами, фактически определяются с полным именем SuchAThingAttribute, тогда как при применении вам нужно указать только имя минус Attribute, которое становится SuchAThing. И они должны быть получены из System.Attribute (по крайней мере, чтобы быть совместимыми).

Атрибут может иметь "настройки", то есть вы можете указать (при написании собственных), какие типы элементов, к которым применим атрибут, и может ли элемент иметь более одного типа этого атрибута или нет, и т.д.

Теперь метаданные атрибута могут быть получены при использовании методов Reflection и GetCustomAttribute. Ссылки здесь и здесь показывают примеры этого.

Ответ 3

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