- •Java и c# технологии прикладного програмирования
- •Java и c# технологии прикладного програмирования
- •Содержание
- •Введение
- •Лабораторная работа № 1 Коллекции c#
- •Цель работы
- •Теоретические сведения
- •Общие сведения о платформе .Net
- •Общие сведения о коллекциях c#
- •Обобщенные коллекции с#
- •Порядок выполнения лабораторной работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Получение информации о типе
- •Экземпляр типа Type
- •Получение экземпляра типа Type
- •Динамическая загрузка сборок
- •Динамическая загрузка типов
- •Исследование типа
- •Характеристики типа как целого
- •Члены класса
- •Динамическое создание объекта и вызов методов
- •Создание объекта по его типу
- •Динамический вызов методов
- •Использование интерфейсов
- •Позднее связывание
- •Динамическое приведение типов
- •Новые механизмы абстракции
- •Динамическое создание типов
- •Динамическое создание программного кода
- •Динамическое создание класса
- •Динамическое создание перечислений
- •Динамический "Hello World!"
- •Динамическое разворачивание циклов
- •Атрибуты
- •Атрибут это класс
- •Декларативное программирование
- •Код, выполняемый во время разработки
- •Использование атрибутов
- •Использование встроенных атрибутов
- •Определение и использование пользовательских атрибутов
- •Пример декларативного программирования
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Связный уровень взаимодействия ado.Net
- •Несвязный уровень взаимодействия ado.Net
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Связи между объектами в FluentNHibernate
- •Связь один к одному
- •Связь один ко многим
- •Связь многие ко многим
- •Способы выборки объектов в FluentNHibernate
- •Запросы NativeSql
- •Запросы по критерию
- •Запросы по образцу
- •Запросы hql
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Компиляция страниц по требованию
- •Страница asp.Net 2.0
- •Директива @Page
- •Жизненный цикл страницы
- •Новые свойства и методы объекта Page
- •Управление страницей
- •Установка выделения на элемент управления
- •Обновление данных без перезагрузки страницы
- •Отправка данных формы другой странице asp.Net
- •Шаблоны дизайна страниц
- •Создание шаблона дизайна
- •Создание страницы
- •Обработка шаблонов средой asp.Net
- •Использование разных шаблонов для разных браузеров
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Библиотеки модульного тестирования в .Net
- •Unit Testing Framework от Microsoft
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Контрольные вопросы
- •Рекомендованная литература
Атрибуты
Атрибут- это некоторая дополнительная информация о любом элементе программы– классах, методах, параметрах и т.д. Эта информация может быть приписана к различным элементам языка - типам (классам, перечислениям и т.п.), полям, методам, свойствам и некоторым другим конструкциям языка. Атрибуты помещаются в исполняемый файл и могут оттуда при необходимости извлекаться.
Атрибут является специальным видом класса, являющимся наследниками класса System.Attribute.
Атрибуты могут использоваться любыми программами, в том числе компиляторами, визуальными средствами разработки и конечными приложениями.
Таким образом, атрибуты - это механизм, позволяющий создавать самоописывающиеся приложения. Важно подчеркнуть роль атрибутов при работе с метаданными и рефлексией. Ведь когда говорится о таком важном свойстве метаданных, как их расширяемость, то подразумеваются именно атрибуты. Атрибуты позволяют добавить к метаданным сборки дополнительную информацию, которая затем может извлекаться при помощи механизма рефлексии.
Атрибут это класс
Все атрибуты .NET являются классами - потомками класса System.Attribute.
Класс Attributeпространства именSystemпредоставляет следующие члены класса:
GetType- получает объект типаTypeтекущего экземпляра;
ToString- возвращает строку, описывающую данный объект;
IsDefined- определяет, существует ли атрибуты заданного типа, назначенные указываемому члену класса;
GetCustomAttribute- запрашивает атрибут заданного типа для указанного члена класса.
Для класса Attributeопределено свойствоTypeId, определяющее уникальный идентификатор атрибута.
Класс атрибута всегда должен иметь модификатор доступа public.
Назначаемый атрибут инициализируется вызовом конструкторас соответствующими параметрами. Таким образом, класс атрибута должен иметь хотя бы одинpublic-конструктор.
Атрибут указывается в квадратных скобках перед элементом, которому он назначается. Например:
[ObsoleteAttribute("Hallow World")]
Язык С# при назначении атрибута позволяет не указывать суффикс Attribute. Так, вместо
[ObsoleteAttribute("Hallow World")]
можно записать
[Obsolete ("Hallow World")]
Атрибуты делятся на предопределенные(встроенные) ипользовательские,которые пишет программист.
Простейший пример встроенного атрибута указывает, что класс подлежит сериализации:
[Serializable]
Class Student
{string Name;
int age
}
Следовательно, программист может определять собственные атрибуты и применять их к различным элементам кода. Таким образом, для того, чтобы назначить атрибут элементу кода, можно:
использовать существующий класс атрибута из библиотеки .NET Framework;
определить новый класс атрибута.
Атрибуты в программном коде используются следующим образом:
Определяется новый или берется существующий в .NET Frameworkатрибут;
Инициализируется конкретный экземпляр атрибута с помощью вызова конструктора атрибута.
Встроенные атрибуты могут использоваться, например, при сериализации (сохранении в поток) данных класса. Скажем, вам надо, чтобы у класса сохранялись не все данные - в этом случае вы можете пометить те данные, которые не надо сохранять, специальным атрибутом.
Еще одним примером применения атрибутов являются компоненты, которые вы располагаете на форме. Кнопки, метки и т.п. имеют некоторый набор свойств - шрифт, местоположение, видимость и т.д. В IDEVisualStudioвы можете выбрать в окнеPropertiesодин из двух способов расположения этих свойств - по алфавиту или по категориям. Так вот, в какую категорию попадет то или иное свойство, определяется специальным встроенным атрибутом.