2010-06-09 12 views
6

persone che hanno visto i loro definiscono eventi come questo:Perché questo evento è stato dichiarato con un delegato anonimo?

public event EventHandler<EventArgs> MyEvent = delegate{}; 

Qualcuno può spiegare come questo è diverso da definirlo senza di essa? È di evitare il controllo di null quando si alza l'evento?

+0

Se non vado errato, il termine corretto per questo è "metodo anonimo", non "delegato anonimo". –

risposta

10

avete ottenuto - aggiunge il delegato vuoto consente di evitare questo:

public void DoSomething() { 
    if (MyEvent != null) // Unnecessary! 
     MyEvent(this, "foo"); 
} 
2

Questa dichiarazione garantisce che MyEvent non sia mai nullo, rimuovendo il noioso e soggetto a errori di dover controllare ogni volta null, al costo di eseguire un delegato extra vuoto ogni volta che l'evento viene generato.

Problemi correlati