Введение в программирование

Используемость атрибута


Атрибуты могут быть использованы для различных элементов языка. Для того чтобы специфицировать, каким образом и для каких элементов можно использовать данный класс атрибута, библиотека NET Framework предоставляет класс System.AttributeUsageAttribute.

Спецификация используемости атрибута указывается в квадратных скобках перед именем определением класса.

Например:

[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]

Элементы языка, которым может быть назначен атрибут, указываются значением или набором значений перечислимого типа AttributeTargets.

Например, для использования данного атрибута только для классов или методов перед определением класса атрибута следует записать:

[AttributeUsage (AttributeTargets.Class | AttributeTargets.Method)]

Спецификация используемости атрибута имеет следующее формальное описание:

[AttributeUsage( доступные_элементы, AllowMultiple=true_или_false, Inherited=наследуемость )]

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

Если именованный параметр AllowMultiple равен true, то классу или члену класса может быть назначено несколько атрибутов.

Параметр Inheritedопределяет, наследуется ли данный атрибут производным классом (по умолчанию - false).

Перечислимый тип AttributeTargets определяет следующее множество значений:

  • All - все элементы языка;
  • Assembly - сборки;
  • Class - классы;
  • Constructor - конструкторы;
  • Field - поля;
  • Method - методы;
  • Property - свойства;
  • Delegate - делегаты;
  • Enum - нумераторы;
  • Event - события;
  • Interface - интерфейсы;
  • Module - модули;
  • Parameter - параметры;
  • ReturnValue - возвращаемые значения;
  • Struct - структуры.



Содержание раздела