event (Referencia de C#)

Actualización: noviembre 2007

La palabra clave event se utiliza para declarar un evento en una clase de editor.

El ejemplo siguiente muestra cómo declarar y generar un evento que utiliza EventHandler como tipo de delegado subyacente. Para obtener el ejemplo de código completo que muestra también cómo utilizar el tipo de delegado genérico EventHandler<TEventArgs> y cómo suscribirse a un evento y crear un método de controlador de eventos, vea Cómo: Publicar eventos que cumplan las directrices de .NET Framework (Guía de programación de C#).


public class SampleEventArgs
{
    public SampleEventArgs(string s) { Text = s; }
    public String Text {get; private set;} // readonly
}
public class Publisher
{
    // Declare the delegate (if using non-generic pattern).
    public delegate void SampleEventHandler(object sender, SampleEventArgs e);

    // Declare the event.
    public event SampleEventHandler SampleEvent;

    // Wrap the event in a protected virtual method
    // to enable derived classes to raise the event.
    protected virtual void RaiseSampleEvent()
    {
        // Raise the event by using the () operator.
        SampleEvent(this, new SampleEventArgs("Hello"));
    }
}



Los eventos son un tipo especial de delegado multidifusión que sólo se puede invocar desde dentro de la clase o estructura donde se declaran (la clase de editor). Si otras clases o estructuras se suscriben al evento, se llamará a sus métodos de controlador de eventos cuando la clase de editor genere el evento. Para obtener más información y ejemplos de código, vea Eventos (Guía de programación de C#) y Delegados (Guía de programación de C#).

Los eventos se pueden marcar como public, private, protected, internal o protectedinternal. Estos modificadores de acceso definen cómo los usuarios de la clase pueden tener acceso al evento. Para obtener más información, vea Modificadores de acceso (Guía de programación de C#).

Las palabras clave siguientes se aplican a los eventos.

Palabra clave

Descripción

Para obtener más información

static

Hace que el evento esté siempre disponible para los llamadores, aunque no exista ninguna instancia de la clase.

Clases estáticas y sus miembros (Guía de programación de C#)

virtual

Permite que las clases derivadas reemplacen el comportamiento del evento mediante la palabra clave override.

Herencia (Guía de programación de C#)

sealed

Especifica que el evento ya no es virtual para las clases derivadas.

 

abstract

El compilador no generará los bloques de descriptor de acceso a eventos add y remove y, por tanto, las clases derivadas deben proporcionar su propia implementación.

 

Un evento puede declararse como evento estático mediante la palabra clave static. Esto hace que el evento esté siempre disponible para los llamadores, aunque no exista ninguna instancia de la clase. Para obtener más información, vea Clases estáticas y sus miembros (Guía de programación de C#).

Un evento puede marcarse como virtual mediante la palabra clave virtual. Esto permite que las clases derivadas invaliden el comportamiento del evento mediante la palabra clave override. Para obtener más información, vea Herencia (Guía de programación de C#). Un evento que invalida un evento virtual también puede ser de tipo sealed, que especifica que ya no es virtual para las clases derivadas. Por último, un evento puede declararse como abstract, lo cual significa que el compilador no generará los bloques de descriptores de acceso de eventos add y remove. Por consiguiente, las clases derivadas deben proporcionar su propia implementación.

Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.

  • 1.6.6.4 Eventos

  • 7.16.3 Asignación de eventos

  • 10.8 Eventos

  • 13.2.3 Eventos de interfaz

Adiciones de comunidad

Mostrar: