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

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

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

Чтобы привести пример применения атрибутов в C#, предположим, что нам нужно построить класс Motorcycle (мотоцикл), допускающий сериализацию в двоичном формате. Для этого мы должны просто добавить атрибут [Serializable] в определение класса. Если при этом какое-то поле при сериализации сохраняться не должно, то к нему можно применить атрибут [NonSerialized].

// Этот класс можно сохранить на диске.

[Serializable]

public class Motorcycle {

 // Но это поле сохраняться не должно.

 [NonSerialized]

 float weightOfCurrentPassengers;

 // Следующие поля сохраняются.

 bool hasRadioSystem;

 bool hasHeadSet;

 bool hasSissyBar;

}

Таблица 12.3. Малая часть встроенных атрибутов 

Атрибут Описание
[CLSCompliant] Требует от элемента строгого соответствия правилам CLS (Common Language Specification – общеязыковые спецификации). Напомним, что соответствующие CLS-спецификациям типы гарантированно могут использоваться во всех языках программирования .NET
[DllImport] Позволяет программному коду .NET вызывать библиотеки программного кода C или C++ (которые не являются управляемыми), включая API (Application Programming Interface – программный интерфейс приложения) операционной системы. Заметьте, что [DllImport] не используется при взаимодействии с программным обеспечением COM
[Obsolete] Обозначает устаревший тип или член. При попытке использовать такой элемент программист получит предупреждение компилятора с соответствующим описанием ошибки
[Serializable] Обозначает возможность сериализации класса или структуры
[NonSerialized] Указывает, что данное поле класса или структуры не должно сохраняться в процессе сериализации
[WebMethod] Обозначает доступность метода для вызова через запросы HTTP и требует от среды CLR сохранения возвращаемого значения метода в формате XML (подробности можно найти в главе 25)

Замечание. Указанный атрибут применяется только к элементу, непосредственно следующему за атрибутом. Например, единственным не сохраняемым полем класса Motorcycle будет weightOfCurrentPassengers. Остальные поля при сериализации сохраняются, поскольку весь класс аннотирован атрибутом [Serializable].

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

После компиляции этого класса можете проверить его метаданные с помощью ildasm.exe. Соответствующие атрибуты будут обозначены метками serializable и notserialized (рис. 12.6).

Как вы можете догадаться сами, один элемент может иметь много атрибутов. Предположим, что у нас есть тип класса C# (HorseAndBuggy), обозначенный как serializable, но теперь он считается устаревшим.

Рис. 12.6. Отображение атрибутов в окне ildasm.exe

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

[Serializable,

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

public class HorseAndBuggy {

 // …

}

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

[Serializable]

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

public class HorseAndBuggy {

 // …

}

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

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

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

8.2.1 Вывод Встроенных Типов

Из книги C++ автора Хилл Мюррей

8.2.1 Вывод Встроенных Типов Класс ostream определяется вместе с операцией «„ («пместить в“) для обработки вывода встроенных типов:class ostream (* // ... public: ostream amp; operator««(char*); ostream amp; operator««(int i) (* return *this««long(i); *) ostream amp; operator««(long); ostream amp; operator««(double);ostream amp; put(char); *);Функция operator««


9. Обзор встроенных игр

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

9. Обзор встроенных игр По словам представителей Microsoft, игры для операционной системы Windows Vista существенно медленнее, чем для Windows XP. Несмотря на то что использование DirectX 10 теоретически приводит к четырехкратному росту производительности по отношению к предыдущим


Использование встроенных стилей

Из книги Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ автора Мейерс Скотт

Использование встроенных стилей С помощью стилей можно установить сразу несколько параметров форматирования символов и абзацев, что позволяет сэкономить время при форматировании больших документов и обеспечить единообразное оформление различных частей


Форматирование с помощью встроенных стилей

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

Форматирование с помощью встроенных стилей В Excel, как и в Word, имеется набор встроенных стилей, позволяющих быстро придать таблице надлежащий вид. Встроенные стили можно применять для отдельных ячеек (диапазонов) или таблицы в целом.Для форматирования всей таблицы


Правило 30: Тщательно обдумывайте использование встроенных функций

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

Правило 30: Тщательно обдумывайте использование встроенных функций Встроенные функции – какая замечательная идея! Они выглядят подобно функциям, они работают подобно функциям, они намного лучше макросов (см. правило 2). Их можно вызывать, не опасаясь накладных расходов,


Создание встроенных областей:

Из книги VBA для чайников автора Каммингс Стив

Создание встроенных областей: <fo:inline> Как вы уже видели в главе 11, при помощи элемента <fo:inline> вы можете форматировать части текста, задавая для них задний фон, подчеркивая текст или заключая текст в границы. Элемент позволяет форматировать встроенную область из


14.6.1. Добавление встроенных команд cd и pwd

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

14.6.1. Добавление встроенных команд cd и pwd Добавление встроенных команд является прямым применением вызовов chdir() и getcwd(). Код соответствует runProgram() как раз там, где обрабатываются другие встроенные команды. Ниже показан раздел обработки встроенных команд в ladsh3.с.422: if


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

Из книги ПК без напряга автора Жвалевский Андрей Валентинович

Использование встроенных форматов для функции Format В табл. 11.2 приводятся именованные встроенные форматы для данных различных типов в VBA. Используйте их как аргумент в функции Format. He забудьте при этом заключить в кавычки имя выбранного вами формата (из первого столбца


Использование в scoqe встроенных функций

Из книги Программирование для карманных компьютеров автора Волков Владимир Борисович

Использование в scoqe встроенных функций Независимо от того, пишете ли вы собственную функцию или процедуру Sub, не стесняйтесь призывать на помощь широчайшие возможности встроенных функций Excel по анализу данных и проведению вычислений. Использовать их в своем собственном


Использование встроенных ресурсов

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

Использование встроенных ресурсов При работе программы необходимо получить доступ к графическому файлу из ресурсов и вывести изображение на экран. Для этого сначала необходимо получить ссылку на сборку. Соответствующий код приведен в листинге 11.1.Листинг 11.1// Получим


Обзор встроенных в Windows программ

Из книги Написание скриптов для Blender 2.49 автора Anders Michel

Обзор встроенных в Windows программ Windows – это операционная система, то есть большая важная программа, которая обеспечивает работу всех остальных. Но не только.Мини-приложенияВыше было мельком упомянуто, что на Рабочем столе появилась какая-то боковая панель с


Использование встроенных компонентов eVB

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

Использование встроенных компонентов eVB Окно настройки свойств (Properties Window)Окно настройки свойств по умолчанию располагается в правом нижнем углу экрана. Его внешний вид показан на рис. 3.18. Рис. 3.18. Окно настройки свойств.При помощи окна настройки свойств пользователь


Глава 21. Программирование встроенных систем

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

Глава 21. Программирование встроенных систем Разработка программного обеспечения для таких мобильных устройств, как карманные компьютеры и мобильные телефоны, может представлять собой очень сложную задачу, поскольку встроенные системы обычно имеют более медленные