Jenter Алекс
Шрифт:
C#
MC++
Visual Basic.NET
Если используется несколько экземпляров атрибутов, MyAttribute заставляет компилятор выдать сообщение об ошибке. Следующий фрагмент кода иллюстрирует правильное использование атрибута YourAttribute и неправильное – MyAttribute:
C#
MC++
Visual Basic.NET
Если свойства AllowMultiple и Inherited установлены в true, класс может наследовать атрибут и иметь еще экземпляры, примененные непосредственно к нему. Если же свойство AllowMultiple равно false, значения атрибутов родительского класса будут переписаны значениями этого же атрибута класса-наследника.
Атрибут может содержать поля следующих типов:
• Bool
• Byte
• Char
• Double
• Float
• Int
• Long
• Short
• String
• Object
• System.Type
Открытые перечислимые типы, вложенные (если вложены) в открытые типы
Попытка использовать в классе, реализующем атрибут другие типы, приводит к ошибкам компиляции.
Теперь можно приступить к определению самого класса. Это определение выглядит подобно определению обычного класса, что демонстрирует следующий пример:
C#
MC++
Visual Basic.NET
Этот пример показывает следующие положения:
• Атрибутивные классы должны объявляться как открытые
• По соглашению, имена классов должны заканчиваться словом Attribute. Хотя это и необязательно, рекомендуется поступать так для улучшения читаемости текста. При использовании атрибута это слово необязательно.