title: Events in the class hierarchy
body: <p>i saw an implementation of an observable queue class <a href="https://stackoverflow.com/questions/3127136/observable-stack-and-queue">here</a>. I found two things i don't understand:
  1. events, with the names PropertyChanged and CollectionChanged are already defined in the base class. Why you don't have to use 'new'?</p>
  
  <pre><code>public virtual event NotifyCollectionChangedEventHandler CollectionChanged;
  </code></pre>
  
  <p>2. the PropertyChanged event is declared in a  simelar way to an property. Why do you do that?</p>
  
  <pre><code> protected virtual event PropertyChangedEventHandler PropertyChanged;
   event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged
   {
      add { this.PropertyChanged += value; }
      remove { this.PropertyChanged -= value; }
   }
  </code></pre>