簡體   English   中英

最佳實踐:在Component上覆蓋OnDispose(bool disposing)vs Disposed事件

[英]Best practice: Override OnDispose(bool disposing) vs Disposed event on Component

在.Net中, Component類公開Disposed事件。 它還提供受保護的成員OnDispose(bool disposing)

擴展Component的自定義組件的最佳實踐是什么? 覆蓋OnDispose(bool)或將事件處理程序附加到Disposed構造中?

我的感覺是,應該重寫OnDispose(bool)並密封課程。

思考?

通常情況下,消費者使用事件,以便在事件發生時通知他們。 如果您要擴展Type並需要清理資源,則應覆蓋Dispose(bool disposing)

Spence對事件處理程序部分正確,可以分配多個事件,但問題是您無法保證處理事件的順序。

密封課程通常取決於你的設計。

FxCop規則也有一些很好的信息: http//msdn.microsoft.com/en-us/library/ms244737(VS.80).aspx

我建議覆蓋行為,因為組件的實現者可以訪問事件處理程序,因此可能會意外取消注冊處理程序實現。 我相信您可能還需要執行此操作,具體取決於您的自定義組件正在執行的操作,因為如果您有狀態對象或外部接口等,則在調用基本處理程序之前可能需要運行處理任務。

正如我所聽到的那樣,這是一個.Net標准,繼承者覆蓋基類OnXxxxx方法,用戶處理Xxxxx事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM