イベント
1.イベントを発生させたいクラスでイベントを宣言(EventHandler ハンドラ名)
ex)public event EventHandler GetPayRise;
2.イベントを発生させたい箇所で、ハンドラ名(SenderObject(基本は発生させたクラスなのでthis),引数(なければEevntArgs.Empty)
ex)GetPayRise?.Invoke(this, EventArgs.Empty);
通常は"onハンドラ名"というメソッドを定義して、その中でイベントを
発生させる上記メソッドを呼ぶ
ex)
OnGetPayRise(EventArgs.Empty);
protected virtual void OnGetPayRise(EventArgs e)
{
GetPayRise?.Invoke(this, e);
}
(*)invokeは、Delegate内のメソッドを全て実行するメソッド
(*)実行前に、Delegate内がNullじゃないか確認を行う
3.EventArgsで値を渡したい場合は、EventArgsを継承したクラスを作りその中で必要な
データを設定
4.その型の変数を、イベント発生させるメソッドに渡す
5.イベント発生の通知を受ける側では、イベントを発生させる
クラスのインスタンスを持つ
6.そのインスタンスのイベントデリゲート(GetPayRise)に、イベント発生時に行いたいメ
ソッド(イベントハンドラ)を登録する