События (Руководство по программированию в C#)

События позволяют классу или объекту уведомлять другие классы или объекты о возникновении каких-либо ситуаций. Класс, отправляющий (или порождающий) событие, называется издателем , а классы, принимающие (или обрабатывающие) событие, называются подписчиками.

В типичном веб-приложении или приложении Windows Forms на C# вы подписываетесь на события, вызываемые элементами управления, такими как кнопки и списки. Вы можете использовать интегрированную среду разработки (IDE) Visual C#, чтобы просмотреть события, публикуемые элементом управления, и выбрать те из них, которые необходимо обрабатывать. IDE позволяет автоматически добавлять пустой метод обработчика событий и код для подписки на событие. Дополнительные сведения см. в разделе Практическое руководство. Подписка и отмена подписки на события.

Общие сведения о событиях

События имеют следующие свойства:

  • Издатель определяет, когда возникает событие; подписчики определяют, какое действие выполняется в ответ на событие.

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

  • События, не имеющие подписчиков, никогда не возникают.

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

  • Если событие имеет несколько подписчиков, при возникновении события обработчики событий вызываются синхронно. Сведения об асинхронном вызове событий см. в разделе Асинхронный вызов синхронных методов.

  • В библиотеке классов .NET события основываются на делегате EventHandler и базовом классе EventArgs.

Дополнительные сведения можно найти в разделе

Спецификация языка C#

Дополнительные сведения см. в разделе События в Спецификации языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.

Делегаты, события и лямбда-выражения в справочном руководстве по C# 3.0, третье издание. Более 250 решений для программистов на C# 3.0

Делегаты и события в статье Изучение C# 3.0: основные понятия C# 3.0

См. также раздел