为清理事件注册而实施IDisposable是不是很糟糕的编程习惯?
例如:
public void Dispose()
{
TextChanged -= TextChanged;
}
答案 0 :(得分:2)
取决于,
如果您手动调用Dispose或使用using
语句,则可以。
using(var subscriber = new MySuperSubscriber()) {
// some logic
}
如果你期望终结器调用Dispose
- 那就不好了,因为不能调用终结器,因为你将在事件处理程序中对你的组件进行“活动”引用。