title: Why use this construct - PropertyChangedEventHandler handler = this.PropertyChanged?
body: <p>The article <a href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx" rel="noreferrer">http://msdn.microsoft.com/en-us/magazine/dd419663.aspx</a> has the following code sample:</p>
  
  <pre><code>public event PropertyChangedEventHandler PropertyChanged;
  
  protected virtual void OnPropertyChanged(string propertyName)
  {       
      PropertyChangedEventHandler handler = this.PropertyChanged;
      if (handler != null)
      {
          var e = new PropertyChangedEventArgs(propertyName);
          handler(this, e);
      }
  }
  </code></pre>
  
  <p>My question is what is gained by introducing the variable 'handler' - the following code seems to work fine:</p>
  
  <pre><code>public event PropertyChangedEventHandler PropertyChanged;
  
  protected virtual void OnPropertyChanged(string propertyName)
  {   
      if (PropertyChanged!= null)
      {
          var e = new PropertyChangedEventArgs(propertyName);
          PropertyChanged(this, e);
      }
  }
  </code></pre>