可能重复:
使用 IDisposable 取消订阅事件
我发现自己在每个类上实现 IDisposable 来处理来自未在类中声明的对象的事件。例如:
public class Text
{
public Text(ClassWithEvents c)
{
c.Event += EventHandler;
}
}
在这种情况下,我会将 Text 类声明为 IDisposable 并在 Dispose 方法上删除事件处理程序,以避免将对象固定在内存和其他讨厌的东西上(例如在应该死的对象上执行的代码)。
我想知道是否有更好的方法来做到这一点,因为我不喜欢有太多的一次性课程,因为它们必须“小心处理”。