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
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
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
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