I got fed up with this kind of code for a long time: private void personList_DoubleClick(object sender, EventArgs e) { if (ShowSelectedPerson != null) ShowSelectedPerson(this, EventArgs.Empty); } Today, a colleague of mine triggered this simple idea: private void personList_DoubleClick(object sender, EventArgs e) { ShowSelectedPerson.Raise(this, EventArgs.Empty); } This is implemented with a simple extension method public static class EventHandlerExtensions { public static void Raise(this EventHandler ......