title: Add event handler in derived class' constructor or override the OnX() method?
body: <p>When designing a derived class, are there [dis]advantages to adding a handler to a base class event in the <code>ctor</code> vs overriding the <code>OnEventName()</code> method and adding some behaviour (as well as calling the base method), if one doesn't need to change the base method and doesn't care in what order things happen, but only wants a reusable component with a little extra behaviour?</p>
  
  <h3>base class:</h3>
  
  <pre><code>public abstract class BaseClass
  {
      public event EventHandler SomeEvent;
      protected void OnSomeEvent(object sender, EventArgs e)
      {
          // do some stuff
      }
  }
  </code></pre>
  
  <h3>option A:</h3>
  
  <pre><code>public class DerivedA
  {
      protected override void OnSomeEvent(object sender, EventArgs e)
      {
          // do some other stuff
          base.OnSomeEvent(sender, e);
      }
  }
  </code></pre>
  
  <h3>option B:</h3>
  
  <pre><code>public class DerivedB
  {
      public DerivedB()
      {
          SomeEvent += (o,e) =&gt; { // do some other stuff };
      }
  }
  </code></pre>