所以我最近开始玩 FxCop,我注意到的一件事是它坚持认为附加到事件的任何方法都应该采用以下形式
void Callback(object sender, EventArgs args) { ...}
并附上
MyObject.Event += new EventHandler(Callback);
现在在.Net 1.1 的日子里一切都很好,但从 3.5 开始,我发现只进行 Action 类型的事件调用或其泛型之一,并完全按照我的方式编写方法变得更加容易和直观如果它被显式调用;没有那个对象发送者或EventHandler cruft。
作为一个问题,我认为这是一个平面设计的必要性。如果您为事件回调设计了不同的方法,这意味着该方法至少隐含了一些关于其调用的信息——这是一个主要的禁忌!
我完全愿意接受我可能会遗漏一些东西。你们对此有何看法,FxCop 错了还是我错了?