イベント (C# プログラミング ガイド)

更新 : 2007 年 11 月

クラスやオブジェクトは、何か重要なことが起こった場合に、イベントを使用して他のクラスまたはオブジェクトに通知を送ります。イベントを送信する (発生させる) クラスをパブリッシャ、イベントを受信する (処理する) クラスをサブスクライバと呼びます。

通常、C# Windows フォームや Web アプリケーションでは、ボタンやリスト ボックスのようなコントロールによって発生したイベントをサブスクライブします。Visual C# 統合開発環境 (IDE: Integrated Development Environment) を使用して、コントロールによって発行されたイベントを表示し、処理対象のイベントを選択できます。イベント サブスクリプションを実行するため、IDE は空のイベント ハンドラ メソッドとコードを自動的に追加します。詳細については、「方法 : イベント サブスクリプションとサブスクリプションの解除 (C# プログラミング ガイド)」を参照してください。

イベントの概要

イベントには、次の特徴があります。

  • パブリッシャは、イベントがいつ発生するかを特定します。サブスクライバは、イベントに対してどのようなアクションを実行するかを特定します。

  • 1 つのイベントに対して、複数のサブスクライバが存在できます。1 つのサブスクライバで、複数のパブリッシャの複数のイベントを処理できます。

  • サブスクライバを持たないイベントは発生しません。

  • イベントは、通常、グラフィカル ユーザー インターフェイスのボタン クリックやメニュー選択などのユーザー アクションを通知するために使用します。

  • イベントに複数のサブスクライバが存在する場合は、イベントの発生時に複数のイベント ハンドラが同時に呼び出されます。イベントを非同期で呼び出す方法については、「同期メソッドの非同期呼び出し」を参照してください。

  • イベントを使用して、スレッドを同期させることができます。

  • .NET Framework クラス ライブラリでは、イベントは EventHandler デリゲートと EventArgs 基本クラスに基づいています。

関連項目

詳細については、次のトピックを参照してください。

C# 言語仕様

詳細については、「C# 言語仕様」の次のセクションを参照してください。

  • 1.6.7.4 イベント

  • 10.2.9.2 イベント用に予約されているメンバ名

  • 10.8 イベント

  • 13.2.3 インターフェイスのイベント

参照

概念

C# プログラミング ガイド

参照

デリゲート (C# プログラミング ガイド)

EventHandler

その他の技術情報

Windows フォーム内でのイベント ハンドラの作成

イベント ベースの非同期パターンを使用したマルチスレッド プログラミング