好吧,在这里举个例子:
- 我有 UserControl A、UserControl B、UserControl C 和一个 Windows 窗体。
- 此 Windows 窗体仅由 UserControl A 启动。
- UserControl C 有[下一步]和[后退]按钮。
- 比如说,UserControl A 是用事件处理程序声明的。用户控件 A 中的函数之一实际上会引发事件调用以执行用户控件 C 中的一个函数。
- 所以,在 UserControl C 中,我必须添加
“UserControlA.OneFunction += this.UserControlC_Function;”
- 如果我单击 UserControl C 上的“下一步”按钮,它将处理 UserControl A 并将新的 UserControl B 添加到 Windows 窗体。但我从来没有手动删除这个事件处理程序。
UserControl A 中的函数之一是调用者(事件在其中声明)。
UserControl C 中的功能之一是监听器。
所以,这些是我的问题:
- 我应该在 UserControl A 处置之前手动删除处理程序吗?
- 这个用户控件A dispose 会自动删除之前声明的处理程序吗?
- 我应该在某个地方添加这个吗?
“UserControlA.OneFunction -= this.UserControlC_Function;”
- 按照惯例,我们不这样做。并且由于没有发生任何事件should在处理后调用,除非相关控件行为异常,否则没有必要这样做。
- 不,至少从反射器中看不到这样的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)