События (Руководство по программированию в C#)
События позволяют классу или объекту уведомлять другие классы или объекты о возникновении каких-либо ситуаций. Класс, отправляющий (или порождающий) событие, называется издателем , а классы, принимающие (или обрабатывающие) событие, называются подписчиками.
В типичном веб-приложении или приложении Windows Forms на C# вы подписываетесь на события, вызываемые элементами управления, такими как кнопки и списки. Вы можете использовать интегрированную среду разработки (IDE) Visual C#, чтобы просмотреть события, публикуемые элементом управления, и выбрать те из них, которые необходимо обрабатывать. IDE позволяет автоматически добавлять пустой метод обработчика событий и код для подписки на событие. Дополнительные сведения см. в разделе Практическое руководство. Подписка и отмена подписки на события.
Общие сведения о событиях
События имеют следующие свойства:
Издатель определяет, когда возникает событие; подписчики определяют, какое действие выполняется в ответ на событие.
У события может быть несколько подписчиков. Подписчик может обрабатывать несколько событий от нескольких издателей.
События, не имеющие подписчиков, никогда не возникают.
Обычно события используются для оповещения о действиях пользователя, например нажатиях кнопок или выборе пунктов меню в графических пользовательских интерфейсах.
Если событие имеет несколько подписчиков, при возникновении события обработчики событий вызываются синхронно. Сведения об асинхронном вызове событий см. в разделе Асинхронный вызов синхронных методов.
В библиотеке классов .NET события основываются на делегате EventHandler и базовом классе EventArgs.
Связанные разделы
Дополнительные сведения можно найти в разделе
Практическое руководство. Подписка и отмена подписки на события
Практическое руководство. Публикация событий, соответствующих рекомендациям .NET
Практическое руководство. Создание событий базового класса в производных классах
Практическое руководство. Реализация пользовательских методов доступа к событиям
Спецификация языка C#
Дополнительные сведения см. в разделе События в Спецификации языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
Главы в популярных книгах
Делегаты, события и лямбда-выражения в справочном руководстве по C# 3.0, третье издание. Более 250 решений для программистов на C# 3.0
Делегаты и события в статье Изучение C# 3.0: основные понятия C# 3.0