C#イベントデリゲートEventHandlerの定義と利用
在C#中,事件委托是一种特殊的委托类型,用于定义事件的回调函数。它是一种封装了方法的类型,用于在事件发生时通知其他对象进行响应。
事件委託の定義と利用の手順は以下の通りです。
- イベントハンドラとして、イベントのコールバックメソッドをカプセル化するイベントハンドラのデリゲート型を、クラス外部で定義する。例として、EventHandler という名前のイベントハンドラのデリゲート型を定義するコードを以下に示す。
public delegate void EventHandler(object sender, EventArgs e);
- クラスの内部でイベントを宣言し、イベントの型としてイベント委託型を使用します。例えば、ButtonClickという名前のイベントを宣言するには、以下のコードを使用します。
public event EventHandler ButtonClick;
- イベントが発生すると、必要に応じてイベントが呼び出され、他のオブジェクトにレスポンスを要求します。
ButtonClick?.Invoke(this, EventArgs.Empty);
- イベントハンドラを登録する:イベントが発生したときに通知を受け取るよう、別のオブジェクトにイベントハンドラを登録します。たとえば、以下のコードを使用して OnButtonClick というイベントハンドラを登録できます。
button.ButtonClick += OnButtonClick;
- イベントハンドラを定義する。イベントが発生したときに処理するロジックを登録されているオブジェクトで定義する。たとえば、OnButtonClick というイベントハンドラを定義するには、次のコードを使用します。
private void OnButtonClick(object sender, EventArgs e)
{
// 处理事件的逻辑
}
上記の手順により、イベント委任 EventHandler を使ってイベントを定義して利用することができます。イベント委任は、複数のオブジェクトが同じイベントに登録して応答できる柔軟な方法を提供し、コードの分離と再利用を可能にします。