Productivity
As you read the title of this post you may ask yourself - Hmmm, raising an event... wasn't that achievable with 1-2 lines of code? How smaller could it get, 0 lines of code?
And you're almost right, to raise an event is not such a big deal. Supposing you have an event of type EventHandler. public event EventHandler Clicked; Typically you have a virtual protected method which raises the event: protected virtual void OnClicked(EventArgs e) { if (Clicked != null) Clicked(this, e); } Pretty simple unless you want to be thread safe (well... almost thread safe), then you should add one additional line: protected virtual void OnClicked(EventArgs e)...