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

クラス やオブジェクトは、何か重要なことが起こった場合に、イベントを使用して他のクラスまたはオブジェクトに通知を送ります。Events enable a class or object to notify other classes or objects when something of interest occurs. イベントを送信する ( 発生させる) クラスを パブリッシャー 、イベントを受信する ( 処理する) クラスを サブスクライバーと呼びます。The class that sends (or raises) the event is called the publisher and the classes that receive (or handle) the event are called subscribers.

一般的な C# Windows フォームまたは Web アプリケーションでは、ボタンやリスト ボックスなどのコントロールによって発生したイベントを定期受信します。In a typical C# Windows Forms or Web application, you subscribe to events raised by controls such as buttons and list boxes. Visual C# 統合開発環境 (IDE) を使用して、コントロールによって発行されるイベントを参照し、処理するイベントを選択できます。You can use the Visual C# integrated development environment (IDE) to browse the events that a control publishes and select the ones that you want to handle. IDE は、空のイベント ハンドラー メソッドとイベントを定期受信するためのコードを自動的に追加する方法を提供します。The IDE provides an easy way to automatically add an empty event handler method and the code to subscribe to the event. 詳細については、「方法 :イベント サブスクリプションとサブスクリプションの解除」を参照してください。For more information, see How to: Subscribe to and Unsubscribe from Events.

イベントの概要Events Overview

イベントには次のようなプロパティがあります。Events have the following properties:

  • パブリッシャーがイベントが発生するタイミングを判断し、サブスクライバーがイベントに対応して実行するアクションを決定します。The publisher determines when an event is raised; the subscribers determine what action is taken in response to the event.

  • イベントには複数のサブスクライバーを指定できます。An event can have multiple subscribers. サブスクライバーは、複数のパブリッシャーからの複数のイベントを処理できます。A subscriber can handle multiple events from multiple publishers.

  • サブスクライバーがないイベントは発生しません。Events that have no subscribers are never raised.

  • イベントは一般的に、グラフィカル ユーザー インターフェイスでのボタンのクリックやメニューの選択などのユーザーの操作を知らせるために使用されます。Events are typically used to signal user actions such as button clicks or menu selections in graphical user interfaces.

  • イベントに複数のサブスクライバーがある場合は、イベントが発生したときに複数のイベント ハンドラーが同時に呼び出されます。When an event has multiple subscribers, the event handlers are invoked synchronously when an event is raised. イベントを非同期に呼び出すには、「 Calling Synchronous Methods Asynchronously」を参照してください。To invoke events asynchronously, see Calling Synchronous Methods Asynchronously.

  • .NET Framework.NET Framework クラス ライブラリ以内で、イベントは、 EventHandler デリゲートおよび EventArgs 基底クラスを基にしています。In the .NET Framework.NET Framework class library, events are based on the EventHandler delegate and the EventArgs base class.

詳細については次を参照してください:For more information, see:

C# 言語仕様C# Language Specification

詳細については、「C# 言語の仕様」の「イベント」を参照してください。For more information, see Events in the C# Language Specification. 言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。The language specification is the definitive source for C# syntax and usage.

Delegates, Events, and Lambda Expressions (デリゲート、イベント、およびラムダ式)」(『C# 3.0 Cookbook, Third Edition: More than 250 solutions for C# 3.0 programmers (C# 3.0 クックブック (第 3 版): C# 3.0 プログラマ向けの 250 以上のソリューション)』)Delegates, Events, and Lambda Expressions in C# 3.0 Cookbook, Third Edition: More than 250 solutions for C# 3.0 programmers

デリゲートとイベント」(『Learning C# 3.0: Master the fundamentals of C# 3.0 (C# 3.0 の学習: C# 3.0 の基礎を習得)』)Delegates and Events in Learning C# 3.0: Master the fundamentals of C# 3.0

関連項目See also