Скачиваний:
89
Добавлен:
27.04.2015
Размер:
113.15 Кб
Скачать

Тема 5.4. Отношения между классами. Интерфейсы, делегаты и события

5.4.1. Понятие отношения между классами

5.4.2. Отношение вложенности

5.4.3. Наследование

5.4.3. Статический контроль типов и динамическое связывание

5.4.4. Пример работы с полиморфным семейством классов

5.4.5. Абстрактные классы

5 .4.6. Интерфейсы

5.4.7. Проблемы множественного наследования

5.4.8. Встроенные интерфейсы

5. 5.1. Как определяется функциональный тип, и как появляются его экземпляры

5.5.2. Функции высших порядков

5.5.3. Наследование и полиморфизм – альтернатива обратному вызову

5.5.4. Делегаты как свойства

5.5.5. Операции над делегатами. Класс Delegate

Пример «Комбинирование делегатов»

5.5.6. Классы с событиями

Вариант 1

  1. Обработчик события:

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

  • никогда не принадлежит классу, зажигающему событие;

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

  • принадлежит только одному классу, слушающему событие;

  • может принадлежать многим классам, слушающим события.

  1. Отметьте истинные высказывания:

  • все события имеют одинаковую сигнатуру из двух аргументов с одними и теми же типами;

  • все события имеют сигнатуру из двух аргументов, но с отличающимися типами;

  • все события, не имеющие собственных аргументов, передаваемых обработчику, соответствуют стандартному встроенному делегату EventHandler;

  • для класса с большим числом событий целесообразно применять динамическое связывание;

  • для связывания событий с обработчиком можно применять только операцию +=.

  1. Объявление события в классе может представлять собой:

  • объявление метода класса;

  • объявление поля класса;

  • объявление процедуры-свойства класса с методами getиset;

  • объявление процедуры-свойства класса с методами addиremove.

Вариант 2

  1. Объекты одного класса:

  • имеют одинаковый набор событий;

  • в процессе вычислений зажигают одинаковый набор событий;

  • в процессе вычислений зажигают набор событий, характерный для объекта;

  • в разных сеансах работы зажигают одинаковый набор событий;

  • в разных сеансах работы зажигают разные события.

  1. Отметьте истинные высказывания:

  • класс, обрабатывающий событие, может отсоединить других обработчиков события и полностью определить реакцию на событие;

  • каждый объект определяет, какой обработчик присоединяется к событию;

  • метод GetInvocationListне применим к событиям;

  • все события имеют одну и ту же сигнатуру.

  1. Класс EventHandler:

  • является классом, которому принадлежат все события;

  • является абстрактным классом и не может иметь экземпляров;

  • является родительским классом для событий, не имеющих собственных аргументов;

  • является потомком класса Delegate;

  • накладывает ограничения на сигнатуру события.

Вариант 3

  1. Процедура, в которой зажигается событие:

  • передает обработчику событий входные аргументы и продолжает свою работу;

  • передает обработчику событий входные аргументы и ждет окончания работы первого обработчика, связанного с событием;

  • передает обработчику событий входные аргументы и ждет окончания работы всего списка обработчиков, связанного с событием;

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

  1. Отметьте истинные высказывания:

  • события – это специализированный вариант делегатов;

  • к каждому событию должен быть присоединен хотя бы один обработчик события;

  • методы CombineиRemove, наследованные от классаDelegateне применимы к событиям;

  • допустимо динамическое связывание событий с обработчиками событий.

  1. Все аргументы события принадлежат:

  • классу EventArgs;

  • классу EventArgs, за исключением аргумента, задающего объект, зажигающий событие;

  • потомку класса EventArgs;

  • потомку класса EventArgsза исключением аргумента, задающего объект, зажигающий событие;

  • возможно разным классам.

Соседние файлы в папке Пособие-Раздела-05-2008