Raising events is a very common practice. We do that a lot and it’s pretty irritating to check for nullity every time: if (eventHandler != null ) { eventHandler(sender, e); } Here comes extensions methods to our aid again. With only two extension methods, we can cover all possible event handlers and raise our events safely in one line. For example: MyEvent.RaiseSafe( this , EventArgs .Empty); Or MyEvent.RaiseSafe<MyEventArgs>( this , new MyEventArgs(someParameter)); In order to achieve that...