Mal ou pas mal?
public static void Raise(this EventHandler handler, object sender, EventArgs args)
{
if (handler != null)
{
handler(sender, args);
}
}
// Usage:
MyButtonClicked.Raise(this, EventArgs.Empty);
// This works too! Evil?
EventHandler handler = null;
handler.Raise(this, EVentArgs.Empty);
Notez qu'en raison de la nature des méthodes d'extension, MyButtonClicked.Raise ne lève pas d'exception NullReferenceException si MyButtonClicked est null. (Par exemple, il n'y a pas d'écouteur pour l'événement MyButtonClicked).
Mal ou pas?