加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#我应该手动删除我声明的事件处理程序吗?

发布时间:2020-12-16 01:46:17 所属栏目:百科 来源:网络整理
导读:好的,举一个例子: 我有UserControl A,UserControl B,UserControl C和一个Windows窗体. 此Windows窗体仅以UserControl A启动. UserControl C有[Next]和[Back]按钮. 说,用一个事件处理程序声明UserControl A. UserControl A中的一个函数实际上会引发事件调用
好的,举一个例子:

>我有UserControl A,UserControl B,UserControl C和一个Windows窗体.
>此Windows窗体仅以UserControl A启动.
> UserControl C有[Next]和[Back]按钮.
>说,用一个事件处理程序声明UserControl A. UserControl A中的一个函数实际上会引发事件调用以在UserControl C执行一个函数.
>所以,在UserControl C,我必须添加

“UserControlA.OneFunction += this.UserControlC_Function;”

>如果我在UserControl C上单击“下一步”按钮,它将处理UserControl A并将新的UserControl B添加到Windows窗体.但我从不手动删除此事件处理程序.

UserControl A中的一个功能是调用者(声明事件的地方).
UserControl C中的一个功能是监听器.

所以,这些是我的问题:

>我应该在UserControl A处理之前手动删除处理程序吗?
>此User Control A dispose会自动删除先前声明的处理程序吗?
>我应该把它添加到某个地方吗?

“UserControlA.OneFunction -= this.UserControlC_Function;”

解决方法

>按惯例,我们没有.并且由于在处置之后不应该调用任何事件,所以除非所讨论的控制行为奇怪,否则不需要这样做. >不.至少从反射器看不到这样的代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读