Je suis tombé sur cette question dans un test de pratique Microsoft et j'ai été confus. Voici la question:Élever un événement en C#
Lequel des exemples de code C# suivant est la bonne façon de déclencher un événement, en supposant que l'événement d'alarme, la AlarmEventArgs classe, et le délégué AlarmEventHandler ont été déclarés?
Voici la réponse « correcte » ils ont fourni:
AlarmEventArgs e = new AlarmEventArgs(1, 2);
AlarmEventHandler handler = Alarm;
if (handler != null)
{
handler(this, e);
}
Cependant, il y a aussi une autre réponse qui semble correcte.
AlarmEventArgs e = new AlarmEventArgs(1, 2);
if (Alarm!= null)
{
Alarm (this, e);
}
Personnellement, utilisez toujours la deuxième méthode. Cela fonctionne très bien. Quelqu'un peut-il me dire pourquoi je devrais utiliser la première méthode au lieu de la seconde?
duplication possible de [Vérification de null avant l'envoi de l'événement ... thread sécurisé?] (Http://stackoverflow.com/questions/282653/checking-for-null-before-event-dispatching-thread-safe) – doppelgreener