Что означает здесь плюс плюс (+ =)?

Я разрабатывал образец кода телефона Windows, и часто вижу инструкции с оператором +=.

Я знаю о добавлении оператора присваивания, который выполняет следующую операцию

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

Но это ново для меня

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

Как работает +=?

Ответ 1

В текущем контексте += означает subscribe. Другими словами, как вы говорите subscribe my method (the right operand) to this event (the left operand), таким образом, когда событие будет поднято, ваш метод будет вызван. Кроме того, это хорошая практика для unsubscribe (-= из этого события, когда вы закончили свою работу (но до того, как вы разместите объект), чтобы предотвратить вызов вашего метода и предотвращение утечек ресурсов. FMI look здесь.

Ответ 2

Он создает делегат (указатель) для phoneNumberChooserTask_Completed и добавив его в список Completed's "Обработчики событий".

- = удалит обработчик событий из события.

Примечание. Делегаты выполняют одинаковые действия в событиях, поэтому вы можете иметь несколько назначений для делегата или события, а когда делегирование или событие выполняется, все назначения будут выполнены.

Ответ 3

Оператор + = используется для указания метода, который будет вызываться в ответ на событие; такие методы называются обработчиками событий. Использование оператора + = в этом контексте называется подпиской на событие.

Другое использование, оно также может использоваться как оператор присваивания:

a=a+b;

может быть записано как

 a+=b;

Ответ 4

Здесь это означает, что "привязывать (или позволяет присвоить) новый обработчик событий" в phNumChoseTask. вы можете отделить его также программным обеспечением "- =". ​​