Procedura: implementare funzioni di accesso a eventi personalizzati (Guida per programmatori C#)
Aggiornamento: novembre 2007
Un evento è un tipo speciale di delegato multicast che può essere richiamato solo dall'interno della classe in cui è dichiarato. Il codice client sottoscrive l'evento fornendo un riferimento a un metodo che deve essere richiamato quando l'evento viene generato. Questi metodi vengono aggiunti all'elenco di chiamate del delegato tramite funzioni di accesso agli eventi, che sono simili alle funzioni di accesso alle proprietà, ad eccezione del fatto che sono denominate add e remove. Nella maggior parte dei casi, non è necessario fornire funzioni di accesso a eventi personalizzate. Se nel codice non sono disponibili funzioni di accesso a eventi personalizzate, il compilatore le aggiunge automaticamente. Tuttavia, in alcuni casi può essere necessario fornire un comportamento personalizzato, come illustrato nell'argomento Procedura: implementare gli eventi di interfaccia (Guida per programmatori C#).
Esempio
Nell'esempio seguente viene illustrato come implementare funzioni di accesso a eventi add e remove personalizzate. Anche se è possibile sostituire qualsiasi parte di codice nelle funzioni di accesso, si consiglia di bloccare l'evento prima di aggiungere o rimuovere un nuovo metodo per la gestione eventi.
event EventHandler IDrawingObject.OnDraw
{
add
{
lock (PreDrawEvent)
{
PreDrawEvent += value;
}
}
remove
{
lock (PreDrawEvent)
{
PreDrawEvent -= value;
}
}
}