A little quiz.
Given the following two delegates:
Does the following code compile?
Did you answer "YES, because PropertyChangedEventHandler IS an EventHandler"?
Unfortunately, the answer is no. Imagine how would the following code work:
How could just EventArgs be passed to propertyHandler, which expects PropertyChangedEventArgs?
Actually, the exact opposite is correct in C# 4:
is perfectly ok, because the handler just sees passed PropertyChangedEventArgs as EventArgs.
So the conclusion is: you can handle specialized events using less specialized handlers (you can handle eg. PropertyChanged event using just an EventHandler).
For more info, see C# delegates on msdn.