Сокращенное представление атрибутов в C#

Сокращенное представление атрибутов в C#

При внимательном изучении материала этой главы вы могли заметить, что фактическим именем класса атрибута [Obsolete] является не Obsolete, a ObsoleteAttribute. По соглашению для имен все атрибуты .NET (и пользовательские атрибуты в том числе) должны в конце имени получить суффикс Attribute. Однако, чтобы упростить процедуру применения атрибутов, в языке C# не требуется, чтобы вы обязательно добавляли этот суффикс. Поэтому следующий вариант определения типа HorseAndBuggy будет идентичен предыдущему (при этом только потребуется ввести немного больше символов).

[SerializableAttribute]

[ObsoleteAttribute("Класс устарел, используйте другой транспорт!")]

public class HorseAndBuggy {

 //…

}

Это упрощение предлагается самим языком C#, и следует подчеркнуть, что эту особенность поддерживают не все языки .NET. Так или иначе, к этому моменту нашего обсуждения вы должны понимать следующие основные особенности, касающиеся атрибутов .NET.

• Атрибуты являются классами, производными от System.Attribute.

• Информация атрибутов добавляется в метаданные.

• Атрибуты будут бесполезны до тех пор, пока другой агент не отобразит их.

• Атрибуты в C# применяются с использованием квадратных скобок.

Теперь мы рассмотрим то, как можно строить свои собственные пользовательские атрибуты и пользовательские программы, отображающие встроенные метаданные.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

7. Унификация атрибутов

Из книги Базы данных: конспект лекций автора Автор неизвестен

7. Унификация атрибутов Если при миграции первичных ключей некоего родительского класса сущностей в один и тот же дочерний класс попадают совпадающие по смыслу атрибуты из разных родительских классов, то эти атрибуты необходимо «слить», т. е. необходимо провести так


Программирование с помощью атрибутов

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

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


Потребители атрибутов

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Потребители атрибутов Как вы можете догадаться, в комплекте с .NET Framework 2.0 SDK поставляется множество утилит, предназначенных для работы с различными атрибутами. Даже компилятор C# (csc.exe) запрограммирован на проверку определенных атрибутов в процессе компиляции. Например,


Применение встроенных атрибутов C#

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Применение встроенных атрибутов C# Как упоминалось выше, библиотека базовых классов .NET предлагает целый ряд атрибутов из разных пространств имен. В табл. 12.3 приводится короткий список некоторых из таких атрибутов (и, конечно же, далеко не всех).Чтобы привести пример


Параметры конструктора для атрибутов

Из книги Визуальное моделирование электронных схем в PSPICE автора Хайнеманн Роберт

Параметры конструктора для атрибутов Мы видим, что атрибут [Obsolete] может принимать нечто похожее на параметр конструктора. Если вы посмотрите на формальное определение атрибута [Obsolete] в окне определения программного кода Visual Studio 2005, то увидите, что данный класс


Создание пользовательских атрибутов

Из книги XSLT автора Хольцнер Стивен

Создание пользовательских атрибутов Первым шагом процесса построения пользовательского атрибута является создание нового класса, производного от System.Attribute. В продолжение автомобильной темы, используемой в этой книге, мы создадим новую библиотеку классов C# с именем


Роль атрибутов CIL

Из книги Технология XSLT автора Валиков Алексей Николаевич

Роль атрибутов CIL Во многих случаях директивы CIL сами по себе оказываются недостаточно информативными, чтобы дать исчерпывающее определение соответствующего типа .NET или его члена. Поэтому многие директивы CIL сопровождаются различными атрибутами CIL, сообщающими о том,


Экспорт атрибутов

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

Экспорт атрибутов В завершение предшествующей дискуссии необходимо обсудить вопрос об экспорте атрибутов. Рассмотренный в этой лекции класс POINT имеет атрибуты x и y и экспортирует их клиентам, также как и функции rho и theta. Для получения значения атрибута некоторого


11.1.2. Создание атрибутов экземпляра

Из книги автора

11.1.2. Создание атрибутов экземпляра Имени атрибута экземпляра в Ruby всегда предшествует знак @. Это обычная переменная в том смысле, что она начинает существовать после первого присваивания.В ОО-языках часто создаются методы для доступа к атрибутам, чтобы обеспечить


1.3. Установка атрибутов

Из книги автора

1.3. Установка атрибутов Для того чтобы ваша схема последовательной цепи точно соответствовала образцу на рис. 1.5, нужно дать сопротивлениям и источнику напряжения необходимые имена и указать их характеристики. При работе с редактором SCHEMATICS имена, значения и другие


Выбор атрибутов

Из книги автора

Выбор атрибутов Как было показано в главе 3, «Создание и применение шаблонов», можно выбирать атрибуты, если предварять их имена префиксом @. Вы уже работали с атрибутом UNITS, который поддерживают большинство детей элементов <PLANET>:<PLANET> <NAME>Earth</NAME> <MASS UNITS="(Earth =


Узлы атрибутов

Из книги автора

Узлы атрибутов Атрибутам того или иного элемента соответствуют узлы атрибутов. Считается, что узел элемента является родителем узла своего атрибута, но вместе с тем узел атрибута не является дочерним узлом узла его элемента. Такая ситуация несколько отличает дерево


Селекторы атрибутов

Из книги автора

Селекторы атрибутов CSS позволяет создавать правила, сопоставляемые элементам с атрибутами, определенными в исходном коде HTML-документа. Селекторы атрибутов могут сопоставляться в следующих четырех случаях.• [att] – если для элемента установлен атрибут att независимо от