title: initialized vs uninitialized delegates. Which one to use
body: <p>I have Come across two different but very similar approaches when a delegate is to be invoked, but I have not been able to find any argument of when to use one over the other.</p>
  <p>for this ill show both ways implementing The INotifyPropertyChanged.</p>
  <p>The First makes sure check if PropertyChanged aint null:</p>
  <pre><code>class Foo_One : INotifyPropertyChanged
  {
      public event PropertyChangedEventHandler PropertyChanged;
      void OnPropertyChanged(string propname)
      {
          if(PropertyChanged!=null)
              PropertyChanged(this, new PropertyChangedEventArgs(propname));
      }
  }
  </code></pre>
  <p>The second way do not bother checking if PropertyChanged is null cause it makes sure it newer can be.</p>
  <pre><code>class Foo_Two : INotifyPropertyChanged
  {
      public event PropertyChangedEventHandler PropertyChanged= delegate{};
      void OnPropertyChanged(string propname)
      {
          PropertyChanged(this, new PropertyChangedEventArgs(propname));
      }
  }
  </code></pre>
  <p>Here I am just guessing...</p>
  <p>if PropertyChanged can be null it it will not reserve the space for it in memory until used, However with the INotifyPropertyChanged used on a ViewModel object will always initialize the PropertyChanged and therefore making the Foo_Two a better implementation in this case?</p>
  <p>so for any other delegate which have &quot;optional use&quot; such as one of the many eventHandlers existing in the .net UIElement class, Foo_one would in this type of situation be better to minimize Memory use?</p>
  <p>Is my guessing completly of?</p>