所以我已經開始用的FxCop玩弄最近一兩件事我注意到是它堅持認爲,附加到事件的任何方法應該是在形式帶有(object,EventArgs)參數的事件回調是否支持1.1和WinForms?
void Callback(object sender, EventArgs args) { ...}
,並與
MyObject.Event += new EventHandler(Callback);
附
現在,在.Net 1.1天內這一切都恢復良好,但從3.5開始,我發現只要進行類型爲Action或其泛型的事件調用就可以更輕鬆,更直觀,並且準確地編寫方法正如我明白地要求的那樣;沒有那個對象發件人或EventHandler cruft。
作爲一個問題,我認爲這是一個平面設計的必要條件。如果您爲事件回調設計了不同的方法,這意味着該方法至少隱含地包含了有關其調用的一些信息 - 這是一個主要的禁忌!
我完全願意接受我可能會錯過一些東西。你們對此有什麼想法,FxCop是錯的還是我?
約定 - 那麼?可擴展性 - 並不是那麼容易。知道調用者 - 可以是有用的,在這種情況下它可以是一個參數(強類型),它不應該是強制性的。它似乎是這樣存在的,因爲當時他們發明了它沒有泛型 – 2008-12-14 15:06:07