Я понимаю преимущества использования стандартной подписи делегата обработчика событий MS, поскольку она позволяет легко расширить информацию, передаваемую через событие, без разрыва любых старых отношений, основанных на старой подписи делегата.
На практике мне интересно, как часто люди следуют этому правилу? Скажем, у меня есть простое событие, подобное этому
public event NameChangedHandler NameChanged;
public delegate void NameChangedHandler(Object sender, string oldName, string newName);
Это простое событие, и я почти уверен, что единственные аргументы, которые мне когда-либо понадобятся узнать из события NameChanged, - это объект, имя которого изменилось, старое имя и новое имя. Так стоит ли создавать отдельный класс NameChangedEventArgs или для простых событий, подобных этому, допустимо просто возвращать аргументы напрямую через аргументы делегата?