Condividi tramite


Procedura: connettere agli eventi metodi per la gestione degli eventi

Aggiornamento: novembre 2007

Per utilizzare gli eventi definiti in una classe diversa, è necessario definire e registrare un gestore eventi. Il gestore eventi deve disporre della stessa firma del metodo assegnata al delegato dichiarato per l'evento in questione. Per registrare il gestore eventi, è necessario aggiungerlo all'evento. Una volta effettuata questa operazione, il metodo verrà chiamato ogni volta che la classe genera l'evento.

Per un esempio che illustri in maniera completa la generazione e la gestione degli eventi, vedere Procedura: generare e utilizzare eventi.

Per aggiungere un metodo per la gestione degli eventi a un evento

  1. Definire un metodo per la gestione degli eventi che disponga della stessa firma del delegato dell'evento.

    public class WakeMeUp 
    {
        // AlarmRang has the same signature as AlarmEventHandler.
        public void AlarmRang(object sender, AlarmEventArgs e)
        {...};
        ...
    }
    
    Public Class WakeMeUp
       ' AlarmRang has the same signature as AlarmEventHandler.
       Public Sub AlarmRang(sender As Object, e As AlarmEventArgs)
          ...
       End Sub
       ...
    End Class
    
  2. Creare un'istanza del delegato, utilizzando un riferimento al metodo per la gestione degli eventi. Quando viene effettuata la chiamata all'istanza del delegato, tale istanza effettuerà a sua volta una chiamata al metodo per la gestione degli eventi.

    // Create an instance of WakeMeUp.
    WakeMeUp w = new WakeMeUp();
    
    // Instantiate the event delegate.
    AlarmEventHandler alhandler = new AlarmEventHandler(w.AlarmRang);
    
    ' Create an instance of WakeMeUp.
    Dim w As New WakeMeUp()
    
    ' Instantiate the event delegate.
    Dim alhandler As AlarmEventHandler = AddressOf w.AlarmRang
    
  3. Aggiungere l'istanza del delegato all'evento. Quando viene generato l'evento, verrà eseguita una chiamata all'istanza del delegato e al metodo per la gestione degli eventi associato.

    // Instantiate the event source.
    AlarmClock clock = new AlarmClock();
    
    // Add the delegate instance to the event.
    clock.Alarm += alhandler;
    
    ' Instantiate the event source.
    Dim clock As New AlarmClock()
    
    ' Add the delegate to the event.
    AddHandler clock.Alarm, AddressOf w.AlarmRang
    

Vedere anche

Attività

Procedura: generare e utilizzare eventi

Concetti

Utilizzo degli eventi

Generazione di un evento

Eventi e delegati

Altre risorse

Gestione e generazione di eventi