Stavo passando in rassegna e sono imbattuto in questa domanda:gestore Metodo evento alzando convenzione
The answer from nobug incluso questo codice:
protected virtual void OnLeave(EmployeeEventArgs e) {
var handler = Leave;
if (handler != null)
handler(this, e);
}
ReSharper genera anche codice simile quando si utilizza il "creare alzando metodo "quick-fix.
La mia domanda è, perché è questa linea occorre ?:
var handler = Leave;
Perché è meglio che scrivere questo ?:
protected virtual void OnLeave(EmployeeEventArgs e) {
if (Leave != null)
Leave(this, e);
}
Yup. Ottenere il gestore di eventi chiamato dopo aver annullato la registrazione è una gara inspiegabile. L'NRE è facilmente risolvibile. –