c# - C# : using -= operator by events? 是什么意思

标签 c# events operators

我们什么时候必须按事件使用这个运算符?它的用途是什么?

最佳答案

就像 += 为您订阅事件的处理程序一样,-= 取消订阅它。

当您不再希望在引发事件时调用特定处理程序时使用它。您通常只需要使用它引发事件的组件在逻辑上比事件的处理程序存在更长的时间 - 如果您不取消订阅,“事件引发者”实际上具有对处理程序的引用,因此可以使其存活时间长于你想要的。

如评论中所述:

  • -= 只会删除一个处理程序;如果订阅了多个处理程序(即使使用完全相同的委托(delegate)),它仍然只会将处理程序计数减少 1。指定处理程序的最后一个实例是删除的那个。 (因此,如果您之前按顺序订阅了处理程序 A、B、A、C,然后删除了 A,那么您最终会得到 A、B、C。)
  • -= 如果指定的处理程序尚未订阅委托(delegate),则不会导致错误;它只是忽略了请求。即使此时事件没有订阅它的处理程序也是如此。

关于c# - C# : using -= operator by events? 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2363573/

相关文章:

jquery - slider 使用jquery输入手机号码

mysql - := operator mean in mysql? 是什么

ruby - "<<"中的 "1000 << 16"在ruby中是什么意思?

c# - 在将文件流式传输给用户时在 ASP.NET(通过服务器)中下载文件

c# - 在 C# 中缓存异常实例是一种好习惯吗

javascript - 选择下拉菜单关闭事件

ajax - 取消 JSF ajax 调用

java - 循环中带有 i+= 的代码不起作用

C#类多态

c# - 如何在 C# 中向 mySql 数据库添加日期 (DateTime.now)