C#のイベントとデリゲートの使い方


イベントは、特定のアクションが発生したときに他のオブジェクトに通知する仕組みです。例えば、ボタンのクリックイベントやデータの変更通知などが含まれます。イベントは、イベントハンドラと呼ばれるメソッドと関連付けられます。イベントが発生すると、関連付けられたイベントハンドラが呼び出されます。

デリゲートは、メソッドを参照するための型です。デリゲートを使用することで、メソッドを他のメソッドに渡したり、メソッドを動的に切り替えたりすることができます。イベントハンドラは、通常、デリゲートのインスタンスとして定義されます。

以下に、C#でイベントとデリゲートを使用するシンプルで簡単な方法とコード例を示します。

  1. イベントの定義とイベントハンドラの作成:

    public class EventPublisher
    {
    public event EventHandler MyEvent;
    protected virtual void OnMyEvent(EventArgs e)
    {
        MyEvent?.Invoke(this, e);
    }
    }
    public class EventSubscriber
    {
    public void HandleEvent(object sender, EventArgs e)
    {
        // イベントの処理
    }
    }
  2. イベントの購読とイベントハンドラの関連付け:

    EventPublisher publisher = new EventPublisher();
    EventSubscriber subscriber = new EventSubscriber();
    publisher.MyEvent += subscriber.HandleEvent;
  3. イベントの発火:

    publisher.OnMyEvent(EventArgs.Empty);

上記のコードでは、EventPublisherクラスがイベントを定義し、OnMyEventメソッドを使用してイベントを発火させています。EventSubscriberクラスはイベントハンドラを実装し、イベントの発生時に処理を行います。

これらのコード例は、C#におけるイベントとデリゲートの基本的な使い方を示しています。さらに高度なトピックや応用例については、公式のMicrosoftドキュメントやオンラインのリソースを参照することをおすすめします。

このブログ投稿では、C#のイベントとデリゲートの使い方について解説し、シンプルで簡単なコード例を提供しました。これにより、読者はイベントとデリゲートの基本的な概念を理解し、実際のプロジェクトで活用できるようになるでしょう。