title: What constitutes 'redundant delegate creation'?
body: <p>I was registering to an event in my class, and as per usual I was lazy and just use the autocomplete feature built into Visual Studio 2008 Pro which auto creates the delegate creation and it's associated method.</p>
  
  <pre><code>public abstract class FooBase
  {
      protected event EventHandler&lt;MyValueChangedArgs&gt; MyValueChanged;
  
      protected FooBase()
      {
          MyValueChanged +=
              new EventHandler&lt;MyValueChangedArgs&gt;(HandleMyValueChanged);
      }
  
      private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
      {
          // Some handling logic
      }
  }
  </code></pre>
  
  <p>Usually I dont think twice when Visual Studio gens the event handler for me, but then I received a recommendation from Refactor! Pro to "Remove Redundant Delegate Creation". The recommendation results in:</p>
  
  <pre><code>public abstract class FooBase
  {
      protected event EventHandler&lt;MyValueChangedArgs&gt; MyValueChanged;
  
      protected FooBase()
      {
          MyValueChanged += HandleMyValueChanged;
      }
  
      private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
      {
          // Some handling logic
      }
  }
  </code></pre>
  
  <p>Under what circumstances is delegate creation redundant and when is delegate creation appropriate?</p>
  
  <p>Thanks.</p>