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