2008-09-19 21 views
1

關於.NET中的自定義事件,傳遞事件參數的首選設計模式是什麼?是否應該爲每個可引發的事件分別設置EventArgs派生類,或者如果所有事件都是由同一類事件引發的,則可以接受一個事件類。自定義事件提供的事件參數的首選實踐是什麼?

+0

不適用但是在問題陳述中有一個錯字Rob。 – 2008-09-19 14:03:50

回答

1

您不需要爲每個事件都有單獨的EventArgs派生類。使用現有的EventArgs派生類而不是重新發明輪子是完全可以接受的,甚至是可取的。

這可能是現有的框架類(如System.Component.CancelEventArgs如果你想要做的就是給事件處理程序以取消操作的可能性。

或者,如果你可以創建自己的EventArgs派生的類你有你的應用程序傳遞給事件處理程序的特定數據沒有理由說爲什麼來自同一類或不同類的兩個事件如果發送相同的數據不應該使用相同的EventArgs派生類

0

它取決於事件是什麼,但大多數情況下,爲了要消費你的事件的任何人,創建一個派生自EventArgs的自定義類。

1

我通常創建一個基本的EventArgs類,它具有每個事件的公共數據。如果一個特定的事件有更多的相關數據,我爲該事件創建一個子類;否則我只使用基類。

0

我會像OAB一樣,創建一個自定義的'base'args類,它通過添加特定於我使用它的組件或應用程序的數據來擴展EventArgs。在會計導出應用程序中,我的基本ExportEventArgs將添加一個AccountNo屬性。

相關問題