イベント

イベント (C# によるプログラミング入門)
http://ufcpp.net/study/csharp/sp_event.html
概要、イベントドリブン型プログラミングの例、イベントハンドラ、eventキーワード


「イベント」(キーボードからの入力など)が起きた時に「イベントハンドラ」を動作させる。
こういうのを「イベントドリブン」のプログラミングという。
イベントは、プロパティのデリゲート版でもあるんだとか。

イベントドリブン型のプログラムは大きく分けて 「イベント発生待受け部」(イベントループ)と「イベント処理部」(イベントハンドラ)の
2つの部分からなります

イベントループでは、デリゲートを用いてイベント処理を他のメソッドに渡す。


さらに自由に!イベントハンドラの追加削除ができるようにしたい。
そこでeventキーワード。

event デリゲート型 イベントハンドラ名;

または

event デリゲート型 イベントハンドラ名
{
  add
  {
    // addアクセサ
    //  ここにイベントハンドラ追加時の処理を書く。
  }
  remove
  {
    // removeアクセサ
    //  ここにイベントハンドラ削除時の処理を書く。
  }
  // add/remove アクセッサ共に、
  // 追加/削除したいイベントハンドラは value という名前の変数に格納されている。
}

このようにして宣言された変数のこともイベントという。
こうすると、外部からは+=, -=でしかアクセスできないので、隠蔽が可能となる。
add,removeで記述された処理のことをイベントプロパティという。