イベント (C# プログラミング ガイド)
クラスやオブジェクトは、何か重要なことが起こった場合に、イベントを使用して他のクラスまたはオブジェクトに通知を送ります。イベントを送信する (発生させる) クラスをパブリッシャー、イベントを受信する (処理する) クラスをサブスクライバーと呼びます。
通常、C# Windows フォームや Web アプリケーションでは、ボタンやリスト ボックスのようなコントロールによって発生したイベントをサブスクライブします。Visual C# 統合開発環境 (IDE: Integrated Development Environment) を使用して、コントロールによって発行されたイベントを表示し、処理対象のイベントを選択できます。イベント サブスクリプションを実行するため、IDE は空のイベント ハンドラー メソッドとコードを自動的に追加します。詳細については、「方法 : イベント サブスクリプションとサブスクリプションの解除 (C# プログラミング ガイド)」を参照してください。
イベントの概要
イベントには、次の特徴があります。
パブリッシャーは、イベントがいつ発生するかを特定します。サブスクライバーは、イベントに対してどのようなアクションを実行するかを特定します。
1 つのイベントに対して、複数のサブスクライバーが存在できます。1 つのサブスクライバーで、複数のパブリッシャーの複数のイベントを処理できます。
サブスクライバーを持たないイベントは発生しません。
イベントは、通常、グラフィカル ユーザー インターフェイスのボタン クリックやメニュー選択などのユーザー アクションを通知するために使用します。
イベントに複数のサブスクライバーが存在する場合は、イベントの発生時に複数のイベント ハンドラーが同時に呼び出されます。イベントを非同期で呼び出す方法については、「同期メソッドの非同期呼び出し」を参照してください。
.NET Framework クラス ライブラリでは、イベントは EventHandler デリゲートと EventArgs 基本クラスに基づいています。
関連項目
詳細については、次のトピックを参照してください。
C# 言語仕様
詳細については、「C# 言語仕様」を参照してください。言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。
参考書籍の該当する章
『C# 3.0 Cookbook, Third Edition: More than 250 solutions for C# 3.0 programmers』の「Delegates, Events, and Lambda Expressions」
『Learning C# 3.0: Master the fundamentals of C# 3.0』の「Delegates and Events」