Что означает здесь плюс плюс (+ =)?
Я разрабатывал образец кода телефона 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. вы можете отделить его также программным обеспечением "- =".