【问题标题】:What does plus equals(+=) operator means here? [duplicate]加号等于(+=) 运算符在这里是什么意思? [复制]
【发布时间】:2014-03-04 10:35:30
【问题描述】:

我正在编写 Windows phone 的示例代码,并且经常看到带有 += 运算符的语句。

我知道添加赋值运算符,它执行以下操作

+= means a = a + b;  // used for both adding number and string concatenation

但这对我来说是新的

phNumChoseTask = new PhoneNumberChooserTask();
phNumChoseTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed);

+= 是如何工作的?

【问题讨论】:

标签: c# windows-phone


【解决方案1】:

在当前上下文中+= 表示subscribe。换句话说,就像您在告诉subscribe my method (the right operand) to this event (the left operand),这样,当事件引发时,您的方法将被调用。此外,在完成工作后(但在处理对象之前)unsubscribe(来自此事件的-=)是一个很好的做法,以防止调用您的方法并防止资源泄漏。FMI 看@ 987654321@.

【讨论】:

    【解决方案2】:

    这里的意思是“附加(或者说分配)一个新的事件处理程序”到 phNumChoseTask。您也可以通过 '-=' 以编程方式将其分离。

    【讨论】:

      【解决方案3】:

      += 运算符用于指定响应事件而调用的方法;此类方法称为事件处理程序。在此上下文中使用 += 运算符称为订阅事件。

      其他用法,也可以作为赋值运算符:

      a=a+b;
      

      可以写成

       a+=b;
      

      【讨论】:

        【解决方案4】:

        它正在创建一个指向 phoneNumberChooserTask_Completed 的委托(指针) 并将其添加到已完成的“事件处理程序”列表中。

        -= 将从事件中删除事件处理程序。

        注意:代理在事件中的执行方式相同,因此您可以对代理或事件进行多个分配,并且当执行代理或事件时,将执行所有分配。

        【讨论】:

          猜你喜欢
          • 2021-07-12
          • 1970-01-01
          • 2010-12-30
          • 1970-01-01
          • 2013-07-30
          • 2017-11-01
          • 2011-04-22
          • 1970-01-01
          相关资源
          最近更新 更多