Eventos (Guía de programación de C#)
Cuando ocurre algo interesante, los eventos habilitan una clase u objeto para notificarlo a otras clases u objetos. La clase que envía (o genera) el evento recibe el nombre de publicador y las clases que reciben (o controlan) el evento se denominan suscriptores.
En una aplicación web o una aplicación de Windows Forms en C# típica, se puede suscribir a eventos generados por controles, como botones y cuadros de lista. Puede usar el entorno de desarrollo integrado (IDE) de Visual C# para examinar los eventos que publica un control y seleccionar los que quiera administrar. El IDE proporciona una forma sencilla de agregar automáticamente un método de controlador de eventos vacío y el código para suscribirse al evento. Para obtener más información, vea Procedimiento para suscribir y cancelar la suscripción a eventos.
Información general sobre eventos
Los eventos tienen las siguientes propiedades:
El publicador determina el momento en el que se genera un evento; los suscriptores determinan la acción que se lleva a cabo en respuesta al evento.
Un evento puede tener varios suscriptores. Un suscriptor puede controlar varios eventos de varios publicadores.
Nunca se generan eventos que no tienen suscriptores.
Los eventos se suelen usar para indicar acciones del usuario, como los clics de los botones o las selecciones de menú en las interfaces gráficas de usuario.
Cuando un evento tiene varios suscriptores, los controladores de eventos se invocan sincrónicamente cuando se genera un evento. Para invocar eventos de forma asincrónica, consulte Llamar a métodos sincrónicos de forma asincrónica.
En la biblioteca de clases de .NET, los eventos se basan en el delegado EventHandler y en la clase base EventArgs.
Secciones relacionadas
Para obtener más información, consulte:
Procedimiento para suscribir y cancelar la suscripción a eventos
Procedimiento para publicar eventos que cumplan las instrucciones de .NET
Procedimiento para generar eventos de una clase base en clases derivadas
Procedimiento para implementar descriptores de acceso de eventos personalizados
Especificación del lenguaje C#
Para obtener más información, consulte la sección Eventos de Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.
Capítulos destacados del libro
Delegates, Events, and Lambda Expressions (Delegados, eventos y expresiones lambda) en C# 3.0 Cookbook, Tercera edición: More than 250 solutions for C# 3.0 programmers (Más de 250 soluciones para programadores de C# 3.0)
Delegates and Events (Delegados y eventos) en Learning C# 3.0: Fundamentals of C# 3.0