Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
1. Ознакомиться с разделом 1, в котором описывается понятие свойства, его разновидности и особенности его объявления и использования.
Простые события
1.1. Построить и запустить приложение в соответствии описанием в разделе 1.2. Убедиться в его работоспособности и составить блок-схему алгоритма его функционирования. Опишите программную реализацию процесса генерации события
1.2. Создать приложение, реализующее пример, приведенный в разделе 1.3 и составить блок-схему его функционирования. Особе внимание уделите особенностям добавления и удаления обработчиков события. Опишите процесс подписки реагировать на возникновение события.
Многоцелеваяобработка событий
1.3. На основе примера в разделе 1.4 разработать приложение, в котором обработка события осуществляется несколькими функциями-обработчиками. Составить блок-схему работы приложения и описать происходящие в нем процессы.
Использование событий в компонентах.NET
1.4. Создать приложение, которое реагирует на нажатие на клавишу. Составить блок-схему работы приложения (раздел 1.5). Описать особенности организации обработки события, возникающего при нажатии на стандартную компоненту в виде клавиши.
Классы с большим числом событий
1.5. Создать приложение с объектом, способным генерировать большое количество событий (раздел 1.6). Особое внимание обратить на динамическую организацию хранения событий. Составить блок-схему работы приложения и описать ее.
Содержание отчета по лабораторной работе
Отчет по лабораторной работе должен содержать:
· Титульный лист.
· Задание на каждый раздел лабораторной работы.
· Листинги программных приложений
· Описание работы программ и блок-схемы их функционирования.
· Внешний вид созданных приложений.
Вопросы для самопроверки
Отметьте истинные высказывания:
q класс, обрабатывающий событие, может отсоединить других обработчиков события и полностью определить реакцию на событие;
q каждый объект определяет, какой обработчик присоединяется к событию;
q метод GetInvocationList не применим к событиям;
q все события имеют одну и ту же сигнатуру.
q события – это специализированный вариант делегатов;
q к каждому событию должен быть присоединен хотя бы один обработчик события;
q методы Combine и Remove, наследованные от класса Delegate не применимы к событиям;
q допустимо динамическое связывание событий с обработчиками событий.
1. Обработчик события:
q всегда принадлежит классу, генерирующему событие;
q никогда не принадлежит классу, генерирующему событие;
q может принадлежать классу, генерирующему событие;
q принадлежит только одному классу, слушающему событие;
q может принадлежать многим классам, слушающим события.
2. События:
q все события имеют одинаковую сигнатуру из двух аргументов с одними и теми же типами;
q все события имеют сигнатуру из двух аргументов, но с отличающимися типами;
q все события, не имеющие собственных аргументов, передаваемых обработчику, соответствуют стандартному встроенному делегату EventHandler;
q для класса с большим числом событий целесообразно применять динамическое связывание;
q для связывания событий с обработчиком можно применять только операцию +=.
3. Объявление события в классе может представлять собой:
q объявление метода класса;
q объявление поля класса;
q объявление процедуры-свойства класса с методами get и set;
q объявление процедуры-свойства класса с методами add и remove.
4. Объекты одного класса:
q имеют одинаковый набор событий;
q в процессе вычислений возникает одинаковый набор событий;
q в процессе вычислений возникает набор событий, характерный для объекта;
q в разных сеансах работы возникает одинаковый набор событий;
q в разных сеансах работы возникают разные события.
5. Объект одного класса:
q является классом, которому принадлежат все события;
q является абстрактным классом и не может иметь экземпляров;
q является родительским классом для событий, не имеющих собственных аргументов;
q является потомком класса Delegate;
q накладывает ограничения на сигнатуру события.
6. Процедура, в которой зажигается событие:
q передает обработчику событий входные аргументы и продолжает свою работу;
q передает обработчику событий входные аргументы и ждет окончания работы первого обработчика, связанного с событием;
q передает обработчику событий входные аргументы и ждет окончания работы всего списка обработчиков, связанного с событием;
q может получить от обработчиков выходные аргументы и использовать их в своей работе.
7. Все аргументы события принадлежат:
q классу EventArgs;
q классу EventArgs, за исключением аргумента, задающего объект, зажигающий событие;
q потомку класса EventArgs;
q потомку класса EventArgs за исключением аргумента, задающего объект, зажигающий событие;
q возможно разным классам.
Контрольные вопросы
1. Что понимается под термином «событие»?
2. Являются ли события членами классов?
3. Какое ключевое слово языка C# используется для описания событий?
4. На каком механизме языка C# основана поддержка событий?
5. Приведите синтаксис описания события в общем виде. Проиллюстрируйте его фрагментом программы на языке C#.
6. Что понимается под термином «широковещательное событие»?
7. На основе какого механизма языка C# строятся широковещательные события?
8. Приведите синтаксис описания широковещательного события в общем виде. Проиллюстрируйте его фрагментом программы на языке C#.
9. Что понимается под термином «исключительная ситуация (исключение)»?
Литература:
1. Биллиг В.А. http://www.INTUIT.ru: Курс: Основы программирования на C#.
2. К.Ватсон и др. С#. Изд-во Лори. 2005 г., 879 с.
3. Г. Шилдт. Полный справочник по С#.: Пер. с англ. — М.: Издательский дом "Вильяме", 2004. — 752 с.
4. Медведев В.И. Особенности объектно-ориентированного программирования на C++/CLI, C# и Java. 2-е изд., испр. и доп. - Казань: РИЦ «Школа», 2010.-444 c.: ил.
5. Павловская Т. А. С#. Программирование на языке высокого уровня. Учебник для вузов. — СПб.: Питер, 2009. — 432 с: ил.
Дата публикования: 2015-10-09; Прочитано: 591 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!