Применение встроенных атрибутов 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 {
// …
}
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Создание встроенных областей: <fo:inline>
Создание встроенных областей: <fo:inline> Как вы уже видели в главе 11, при помощи элемента <fo:inline> вы можете форматировать части текста, задавая для них задний фон, подчеркивая текст или заключая текст в границы. Элемент позволяет форматировать встроенную область из
14.6.1. Добавление встроенных команд cd и pwd
14.6.1. Добавление встроенных команд cd и pwd Добавление встроенных команд является прямым применением вызовов chdir() и getcwd(). Код соответствует runProgram() как раз там, где обрабатываются другие встроенные команды. Ниже показан раздел обработки встроенных команд в ladsh3.с.422: if
9. Обзор встроенных игр
9. Обзор встроенных игр По словам представителей Microsoft, игры для операционной системы Windows Vista существенно медленнее, чем для Windows XP. Несмотря на то что использование DirectX 10 теоретически приводит к четырехкратному росту производительности по отношению к предыдущим
Глава 21. Программирование встроенных систем
Глава 21. Программирование встроенных систем Разработка программного обеспечения для таких мобильных устройств, как карманные компьютеры и мобильные телефоны, может представлять собой очень сложную задачу, поскольку встроенные системы обычно имеют более медленные
Использование встроенных форматов для функции Format
Использование встроенных форматов для функции Format В табл. 11.2 приводятся именованные встроенные форматы для данных различных типов в VBA. Используйте их как аргумент в функции Format. He забудьте при этом заключить в кавычки имя выбранного вами формата (из первого столбца
Использование в scoqe встроенных функций
Использование в scoqe встроенных функций Независимо от того, пишете ли вы собственную функцию или процедуру Sub, не стесняйтесь призывать на помощь широчайшие возможности встроенных функций Excel по анализу данных и проведению вычислений. Использовать их в своем собственном
Правило 30: Тщательно обдумывайте использование встроенных функций
Правило 30: Тщательно обдумывайте использование встроенных функций Встроенные функции – какая замечательная идея! Они выглядят подобно функциям, они работают подобно функциям, они намного лучше макросов (см. правило 2). Их можно вызывать, не опасаясь накладных расходов,
Использование встроенных компонентов eVB
Использование встроенных компонентов eVB Окно настройки свойств (Properties Window)Окно настройки свойств по умолчанию располагается в правом нижнем углу экрана. Его внешний вид показан на рис. 3.18. Рис. 3.18. Окно настройки свойств.При помощи окна настройки свойств пользователь
Использование встроенных ресурсов
Использование встроенных ресурсов При работе программы необходимо получить доступ к графическому файлу из ресурсов и вывести изображение на экран. Для этого сначала необходимо получить ссылку на сборку. Соответствующий код приведен в листинге 11.1.Листинг 11.1// Получим
8.2.1 Вывод Встроенных Типов
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««
Обзор встроенных в Windows программ
Обзор встроенных в Windows программ Windows – это операционная система, то есть большая важная программа, которая обеспечивает работу всех остальных. Но не только.Мини-приложенияВыше было мельком упомянуто, что на Рабочем столе появилась какая-то боковая панель с
Использование встроенных стилей
Использование встроенных стилей С помощью стилей можно установить сразу несколько параметров форматирования символов и абзацев, что позволяет сэкономить время при форматировании больших документов и обеспечить единообразное оформление различных частей
Форматирование с помощью встроенных стилей
Форматирование с помощью встроенных стилей В Excel, как и в Word, имеется набор встроенных стилей, позволяющих быстро придать таблице надлежащий вид. Встроенные стили можно применять для отдельных ячеек (диапазонов) или таблицы в целом.Для форматирования всей таблицы