So I have started playing around with FxCop lately and one thing I've noticed is it insists that any method attached to an event should be in the form
void Callback(object sender, EventArgs args) { ...}
and to be attached with
MyObject.Event += new EventHandler(Callback);
Now that was all well and good back in the .Net 1.1 days but since 3.5 I've been finding it far easier and more intuitive to just make the event call of type Action or one of its generics, and write the method exactly as I would if it were being called explicitly; none of that object sender or EventHandler cruft.
As a matter of point I think it is a flat out design imperative. If you design a method differently for an event callback that means the method at least implicitly has some information about its invocation - thats a major no-no!
I'm fully willing to accept that I might be missing something. What are you guys' thoughts on this, Is FxCop in the wrong or am I?