i saw an implementation of an observable queue class here. 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'?
public virtual event NotifyCollectionChangedEventHandler CollectionChanged;
2. the PropertyChanged event is declared in a simelar way to an property. Why do you do that?
protected virtual event PropertyChangedEventHandler PropertyChanged;
event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged
{
add { this.PropertyChanged += value; }
remove { this.PropertyChanged -= value; }
}