События. Общие сведенияСобытия и делегаты тесно связаны между собой. Событие позволяет классу либо его объектам уведомлятьдругие классы об возникновении неких ситуаций. Внешний код реагирует на событие так, как мы захотим; реакция – это выполнение некоторых методов во внешнем коде, при помощи делегата описывается, что это будут за методы. Внешний код может подписаться на возникновение события, что подразумевает собой выполнение ряда методов. Метод, который подписывается на событие называется обработчиком события. То есть, класс, в котором объявлено событие – задает условия, при которых оно возникает. А метод (обработчик события) уже показывает, что произойдет при возникновении события. Важно: в методе Main нужно сначала вызывать событие, а потом уже выполнять остальные действия. В противном случае может выдать ошибку: Ссылка на объект не указывает на экземпляр объекта. Пример. Есть класс Car, 2 метода: DriveToWork, DriveToSchool, свойство: FuelLevel; за каждую поездку отнимается топливо в баке, нужно сделать событие, которое реагирует на пустой бак. Пример 2. Есть предприятие с лимитом з/п в 10 тыс, нанимаем работников с разными з/п до тех пор, пока не закончится лимит.
Также события широко используется в графических приложениях:
|