event (Riferimenti per C#)

La parola chiave event viene utilizzata per dichiarare un evento in una classe autore.

Esempio

Nell'esempio seguente viene illustrato come dichiarare e generare un evento che utilizza EventHandler come tipo delegato sottostante.Per l'esempio di codice completo in cui viene illustrato come utilizzare il tipo delegato generico EventHandler<TEventArgs> e come sottoscrivere un evento e creare un metodo per la gestione eventi, vedere Procedura: pubblicare eventi conformi alle linee guida di .NET Framework (Guida per programmatori 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.
            if (SampleEvent != null)
                SampleEvent(this, new SampleEventArgs("Hello"));
        }
    }

Gli eventi sono un tipo speciale di delegato multicast che possono essere richiamati solo dall'interno della classe o della struttura in cui sono dichiarati (la classe autore).Se altre classi o strutture sottoscrivono l'evento, i metodi per la gestione eventi corrispondenti verranno chiamati quando la classe autore genera l'evento.Per ulteriori informazioni ed esempi di codice, vedere Eventi (Guida per programmatori C#) e Delegati (Guida per programmatori C#).

Gli eventi possono essere contrassegnati come public, private, protected, internal o protectedinternal.Questi modificatori definiscono le modalità di accesso all'evento per gli utenti della classe.Per ulteriori informazioni, vedere Modificatori di accesso (Guida per programmatori C#).

Parole chiave ed eventi

Le parole chiave seguenti si riferiscono a eventi.

Parola chiave

Descrizione

Ulteriori informazioni

static

L'evento sarà sempre disponibile per i chiamanti, anche se non esistono istanze della classe.

Classi statiche e membri di classi statiche (Guida per programmatori C#)

virtual

Le classi derivate possono eseguire l'override del comportamento dell'evento utilizzando la parola chiave override.

Ereditarietà (Guida per programmatori C#)

sealed

Specifica che per le classi derivate l'evento non è più virtuale.

 

abstract

Il compilatore non genererà i blocchi di funzioni di accesso dell'evento add e remove e pertanto le classi derivate dovranno fornire la propria implementazione.

 

Un evento può essere dichiarato statico mediante la parola chiave static.In questo modo l'evento risulterà sempre disponibile per i chiamanti, anche se non esistono istanze della classe.Per ulteriori informazioni, vedere Classi statiche e membri di classi statiche (Guida per programmatori C#).

Un evento può essere contrassegnato come virtuale mediante la parola chiave virtual.In questo modo le classi derivate possono eseguire l'override del comportamento dell'evento tramite la parola chiave override.Per ulteriori informazioni, vedere Ereditarietà (Guida per programmatori C#).Un evento che esegue l'override di un evento virtuale può anche essere contrassegnato come sealed, in modo che non risulti più virtuale per le classi derivate.Infine, un evento può essere dichiarato abstract, in modo che il compilatore non generi blocchi di funzioni di accesso agli eventi add e remove.Le classi derivate devono fornire pertanto le relative implementazioni.

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio è la fonte ufficiale per la sintassi e l'utilizzo di C#.

Vedere anche

Attività

Procedura: combinare delegati multicast (Guida per programmatori C#)

Riferimenti

Parole chiave di C#

add (Riferimenti per C#)

remove (Riferimenti per C#)

Modificatori (Riferimenti per C#)

Concetti

Guida per programmatori C#

Altre risorse

Riferimenti per C#