在 C# 中,我习惯于清除对我的自定义事件的每个订阅,Dispose()
以避免订阅者忘记取消订阅我的事件而导致内存泄漏。
这很简单,只需调用即可,MyEvent = null
因为 C# 编译器会自动生成一个委托字段。不幸的是,在 VB.NET 中,似乎没有简单的方法可以做到这一点。我想出的唯一解决方案是编写一个Custom Event
,添加自定义添加和删除处理程序调用Delegate.Combine
/ Delegate.Remove
,基本上是 C# 编译器所做的。但是,为了能够清除订阅而必须为每个事件执行此操作对我来说似乎有点“矫枉过正”。
有没有人有其他想法来解决这个问题?谢谢。