title: Can Virtual Event Handlers Cause Any Problems
body: <p>Are there any gotchas with registering virtual methods as event handlers as opposed to registering a private method that delegates to a virtual method?  I would prefer Option 1 (which seems to work), but I want to make sure it's not going to bite me later.</p>
  
  <p><strong>Option 1</strong></p>
  
  <pre><code>public class Controller1
  {
      public Controller1(EventNotifier eventNotifier)
      {
          eventNotifier.ImportantEvent += OnEventNotifierImportantEvent;
      }
  
      protected virtual void OnEventNotifierImportantEvent(object sender, EventArgs e)
      {
      }
  }
  </code></pre>
  
  <p><strong>Option 2</strong></p>
  
  <pre><code>public class Controller2
  {
      public Controller2(EventNotifier eventNotifier)
      {
          eventNotifier.ImportantEvent += eventNotifier_OnImportantEvent;
      }
  
      private void eventNotifier_OnImportantEvent(object sender, EventArgs eventArgs)
      {
          OnEventNotifierImportantEvent(sender, eventArgs);
      }
  
      protected virtual void OnEventNotifierImportantEvent(object sender, EventArgs e)
      {
      }
  }
  </code></pre>