C#でイベントを作ってみよう
イベント宣言を作るのは簡単です。
// C#でのイベント public delegate void Proc(object sender);
上記のような感じでイベント作成できます。
C++BuilderでいうところのTNotifyEvent
みたいな感じです。
// BCBの場合 typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);
イベントを使うクラスを作成
上記で作成したProc
をクラスイベントとして使えるようにします。
class C_Event_test { public event Proc Notif1;//ここでProcをイベントとして登録 public C_Event_test(Proc n1) { Notif1 = n1; } public void Run() { Notif1?.Invoke(null);//ここでイベントを使う。 } }
メインクラスで使う
作成したC_Event_test
クラスを、メインクラスで使ってみます。下記のようなメソッドを作成する
private void Do_Ev1(object sender) { t1.Text = "イベント発生"; }
ボタンクリック時に、クラスイベントでDo_Ev1()
を呼び出します。
private void Button_Click(object sender, RoutedEventArgs e) { ev1.Notif1 += Do_Ev1;//イベント発生時のDo_Ev1メソッドを登録 ev1.Run(); }