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

События позволяют классу или объекту уведомлять другие классы или объекты о возникновении каких-либо ситуаций.Events enable a class or object to notify other classes or objects when something of interest occurs. Класс, отправляющий (или порождающий) событие, называется издателем , а классы, принимающие (или обрабатывающие) событие, называются подписчиками.The class that sends (or raises) the event is called the publisher and the classes that receive (or handle) the event are called subscribers.

В типичном веб-приложении или приложении Windows Forms на C# вы подписываетесь на события, вызываемые элементами управления, такими как кнопки и списки.In a typical C# Windows Forms or Web application, you subscribe to events raised by controls such as buttons and list boxes. Вы можете использовать интегрированную среду разработки (IDE) Visual C#, чтобы просмотреть события, публикуемые элементом управления, и выбрать те из них, которые необходимо обрабатывать.You can use the Visual C# integrated development environment (IDE) to browse the events that a control publishes and select the ones that you want to handle. IDE позволяет автоматически добавлять пустой метод обработчика событий и код для подписки на событие.The IDE provides an easy way to automatically add an empty event handler method and the code to subscribe to the event. Дополнительные сведения см. в разделе Практическое руководство. Подписка и отмена подписки на события.For more information, see How to: Subscribe to and Unsubscribe from Events.

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

События имеют следующие свойства:Events have the following properties:

  • Издатель определяет, когда возникает событие; подписчики определяют, какое действие выполняется в ответ на событие.The publisher determines when an event is raised; the subscribers determine what action is taken in response to the event.

  • У события может быть несколько подписчиков.An event can have multiple subscribers. Подписчик может обрабатывать несколько событий от нескольких издателей.A subscriber can handle multiple events from multiple publishers.

  • События, не имеющие подписчиков, никогда не возникают.Events that have no subscribers are never raised.

  • Обычно события используются для оповещения о действиях пользователя, например нажатиях кнопок или выборе пунктов меню в графических пользовательских интерфейсах.Events are typically used to signal user actions such as button clicks or menu selections in graphical user interfaces.

  • Если событие имеет несколько подписчиков, при возникновении события обработчики событий вызываются синхронно.When an event has multiple subscribers, the event handlers are invoked synchronously when an event is raised. Сведения об асинхронном вызове событий см. в разделе Calling Synchronous Methods Asynchronously.To invoke events asynchronously, see Calling Synchronous Methods Asynchronously.

  • В библиотеке классов .NET Framework события основываются на делегате EventHandler и базовом классе EventArgs.In the .NET Framework class library, events are based on the EventHandler delegate and the EventArgs base class.

Дополнительные сведения:For more information, see:

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

Дополнительные сведения см. в разделе События в Спецификации языка C#.For more information, see Events in the C# Language Specification. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.The language specification is the definitive source for C# syntax and usage.

Делегаты, события и лямбда-выражения в справочном руководстве по C# 3.0, третье издание. Более 250 решений для программистов на C# 3.0Delegates, Events, and Lambda Expressions in C# 3.0 Cookbook, Third Edition: More than 250 solutions for C# 3.0 programmers

Делегаты и события в изучении C# 3.0. Овладение основными понятиями C# 3.0Delegates and Events in Learning C# 3.0: Master the fundamentals of C# 3.0

См. такжеSee also