私はWindows Phoneのサンプルコードを作成していましたが、+=
演算子。
追加代入演算子について知っていますが、これは以下の操作を行います
+= means a = a + b; // used for both adding number and string concatenation
しかし、これは私にとって新しいです
phNumChoseTask = new PhoneNumberChooserTask();
phNumChoseTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed);
ここではどのように+=
機能しますか?
現在のコンテキストでは、_+=
_はsubscribe
を意味します。つまり、subscribe my method (the right operand) to this event (the left operand)
に伝えているようなものです。このようにして、イベントが発生すると、メソッドが呼び出されます。また、メソッドが呼び出されるのを防ぎ、リソースを防ぐために、作業が終了したとき(ただし、オブジェクトを破棄する前)に、このイベントからunsubscribe
(_-=
_)を実行することをお勧めします。リーク。FMIの外観 ここ 。
+ =演算子は、イベントに応答して呼び出されるメソッドを指定するために使用されます。このようなメソッドはイベントハンドラーと呼ばれます。このコンテキストでの+ =演算子の使用は、イベントのサブスクライブと呼ばれます。
その他の使用法、これは代入演算子としても使用できます。
a=a+b;
次のように書くことができます
a+=b;
phoneNumberChooserTask_Completedへのデリゲート(ポインタ)を作成し、それをCompleted's "イベントハンドラ"のリストに追加しています。
-=は、イベントからイベントハンドラーを削除します。
注:デリゲートはイベントでも同じように実行されるため、デリゲートまたはイベントのいずれかに複数の割り当てを行うことができ、デリゲートまたはイベントが実行されると、すべての割り当てが実行されます。
ここでは、phNumChoseTaskに「新しいイベントハンドラーをアタッチする(または割り当てることを言う)」ことを意味します。プログラムで '-='を使用してデタッチすることもできます。