2014-02-07 5 views
11

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

Я знаю оператор о назначения добавить, который делает действия, описанные ниже

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

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

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

Вот как делает += работает?

+2

См. [События (Руководство по программированию на C#)] (http://msdn.microsoft.com/en-us/library/awbftdfh.aspx) –

ответ

1

Это создает делегат (указатель) на phoneNumberChooserTask_Completed и добавить его в Завершена-х список «обработчиков событий».

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

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

1

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

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

a=a+b; 

можно записать в виде

a+=b; 
0

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

9

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

Смежные вопросы