Итак, в последнее время я начал играть с FxCop, и я заметил одну вещь: он настаивает на том, чтобы любой метод, прикрепленный к событию, был в форме
void Callback(object sender, EventArgs args) { ...}
и должен быть прикреплен с
MyObject.Event += new EventHandler(Callback);
Теперь все было хорошо в те времена .Net 1.1, но начиная с 3.5 я обнаружил, что гораздо проще и интуитивно проще просто вызывать событие типа Action или один из его обобщений и писать метод точно так же, как если бы он вызывался явно; ни один из этих отправителей объекта или EventHandler Cruft.
В сущности, я считаю, что это категорический императив дизайна. Если вы разрабатываете метод по-другому для обратного вызова события, это означает, что метод, по крайней мере, неявно имеет некоторую информацию о его вызове - это главное нет-нет!
Я полностью готов принять то, что я что-то упускаю. Что вы, ребята, думаете по этому поводу, FxCop не прав или я?