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

2024-01-12

好吧,在这里举个例子:

  1. 我有 UserControl A、UserControl B、UserControl C 和一个 Windows 窗体。
  2. 此 Windows 窗体仅由 UserControl A 启动。
  3. UserControl C 有[下一步]和[后退]按钮。
  4. 比如说,UserControl A 是用事件处理程序声明的。用户控件 A 中的函数之一实际上会引发事件调用以执行用户控件 C 中的一个函数。
  5. 所以,在 UserControl C 中,我必须添加

“UserControlA.OneFunction += this.UserControlC_Function;”

  1. 如果我单击 UserControl C 上的“下一步”按钮,它将处理 UserControl A 并将新的 UserControl B 添加到 Windows 窗体。但我从来没有手动删除这个事件处理程序。

UserControl A 中的函数之一是调用者(事件在其中声明)。
UserControl C 中的功能之一是监听器。

所以,这些是我的问题:

  • 我应该在 UserControl A 处置之前手动删除处理程序吗?
  • 这个用户控件A dispose 会自动删除之前声明的处理程序吗?
  • 我应该在某个地方添加这个吗?

“UserControlA.OneFunction -= this.UserControlC_Function;”


  1. 按照惯例,我们不这样做。并且由于没有发生任何事件should在处理后调用,除非相关控件行为异常,否则没有必要这样做。
  2. 不,至少从反射器中看不到这样的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 需要避免子进程死锁而不进行通信

    我需要执行一个命令 该命令会产生大量输出 并且需要花费大量时间来执行 gt 30 分钟 我正在考虑使用 subprocess Popen 来做到这一点 我需要捕获命令的输出 因此我将 PIPE 传递给 stdout 和 stderr 使用
  • MAX 使用 gcc 的 typeof 扩展

    我已经用 C 编程有一段时间了 所以我决定学习一些高级 C 我听说过 gcc 编译器扩展 下面我看到了 MAX 的代码 到目前为止我已经实现如下 define MAX x y x gt y x y 这是我找到的新定义 不幸的是我什至不明白下
  • 从 Java 调用 python

    我正在为公司的内部工具包构建前端 一半的工具是用 python 编写的 另一半是用其他几种脚本语言编写的 所以我正在使用 swing 在 java 中构建前端 到目前为止 我可以通过以下代码调用 python 脚本 public class
  • Android 推送通知在应用程序关闭时不起作用

    我在用着OkSse https github com heremaps oksse订阅我的服务器发送事件 每当服务器发送新消息时 无论应用程序是否处于运行状态 都应该出现通知前景 最小化或完全关闭 通知按预期工作最小化或在前台但当全封闭 这
  • 如何使用 .htaccess 拒绝除一个目录名之外的所有目录名?

    我有这个 htaccess 文件 我可以在其中阻止用户从浏览器物理访问文件 它们只能通过系统加载 Options Indexes Order deny allow deny from all 但我有一个问题 有时我通过 AJAX 加载文件
  • 使用 Activerecord 对多列求和

    我是 Activerecord 的新手 我想对模型学生的多列进行求和 我的模范学生如下 class Student lt ActiveRecord Base attr accessible class roll num total mark
  • Java 不是异步做事吗?

    我正在尝试学习 Java 我正在阅读一个教程 内容如下 while N lt 0 TextIO put The starting point must be positive Please try again N TextIO getlnI
  • 如何将 xlsx 或 xls 文件读取为 Spark 数据帧

    谁能告诉我在不转换 xlsx 或 xls 文件的情况下我们如何将它们读取为 Spark 数据框 我已经尝试使用 pandas 进行读取 然后尝试转换为 Spark 数据帧 但出现错误 错误是 Error Cannot merge type
  • OpenCV Python QueryFrame 函数泄漏内存

    我正在使用Python接口用于OpenCV 2 2 0 以下代码可以正确地从视频文件中抓取帧 for f in range 1 frameCount grab the left and right frames frameL cv Quer
  • 如何使用jquery Ajax数据操作

    我试图弄清楚在 Ajax 调用中使用什么以及如何使用 data 参数 问题是我不确定数据调用中的 操作 部分应该做什么 它是控制器中的一个动作吗 如果是 我该如何正确引用它 var data action get all users dat
  • Mono 随机 CS0006 编译错误 w/fastcgi-mono-server4

    我正在尝试使用 mono 2 10 8 1 w fastcgi mono server4 在我的 Linux 服务器上部署在 Mono OSX 上开发的 ASP MVC 项目 Web 应用程序总是启动正常 但随后我开始收到各种 URI 的随
  • OSX 上的 scp 不允​​许用户名中包含空格?

    我需要 ssh 进入正在运行的 Windows 7 机器MobaSSH http mobassh mobatek net 作为其 SSH 守护进程 Windows 框中的用户名包含空格 我可以在 OSX 终端上登录 Windows 7 盒子
  • 如何在 javascript/nodejs (ES6) 中创建静态函数/对象

    我想使用 Javascript Node JS 创建一个静态类 我使用谷歌但我找不到任何有用的例子 我想在 Javascript ES6 中创建类似这样的东西 C public static MyStaticClass public sta
  • 如何在apache tomcat中查找Web应用程序的内存使用情况

    我正在开发一个项目 需要查找部署在 Apache tomcat 中的 Web 应用程序的内存使用情况 在 Intranet 架构中 我想开发一个工具来查找访问已部署的 Web 应用程序及其正在使用的内存的用户 有人可以帮助我开始这个项目吗
  • Angular 7 测试:NullInjectorError:没有ActivatedRoute 的提供者

    您好 测试我用 Angular 7 制作的应用程序时出现一些错误 我在 Angular 方面没有太多经验 所以我需要您的帮助 Error StaticInjectorError DynamicTestModule BeerDetailsCo
  • 如何动态翻译 html5 占位符

    我正在使用 Angular translate 将页面内容翻译成不同的语言
  • 形状 (None, 1) 和 (None, 3) 不兼容,多类分类

    所以我有多类分类 我想编译我的模型 feature layer DenseFeatures feature columns A layer that produces a dense Tensor model Sequential feat
  • 该名称在当前上下文中不存在

    我的 asp net 3 5 应用程序中有一个母版页 并且有一些控件和 jquery 内容 我尝试访问代码隐藏中的控件 它说 The name DrpStates does not exist in the current context
  • Java中如何解析这个字符串?

    前缀 dir1 dir2 dir3 dir4 如何解析dir1 dir2Java 中上述字符串的值 这里的前缀可以是 usr local apache2 简历 如果你想分割String at the 性格 String split http
  • C# 我应该手动删除我声明的事件处理程序吗?

    好吧 在这里举个例子 我有 UserControl A UserControl B UserControl C 和一个 Windows 窗体 此 Windows 窗体仅由 UserControl A 启动 UserControl C 有 下