[英]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.