次の方法で共有


イベントとコールバック

更新 : 2007 年 11 月

コールバック メソッドとは、操作や動作が完了するとデリゲートによって自動的に呼び出されるメソッドです。たとえば、非同期デザイン パターンには、AsyncCallback デリゲートを使用して、非同期操作の完了時に実行するコードを指定するものがあります。このデザイン パターンは、コールバックを使用して非同期書き込み操作の結果を処理する BeginWrite メソッドで使用されます。

イベントは、コールバックと同じような機構です。イベントを使用すると、通常、状態の変更や動作の開始または終了に関連する特定の条件の下で、ユーザー指定コードを実行できます。言語構文やツールを使用することによって、イベントを認識したり処理したりするための一貫したコーディング体験が実現されるため、イベントはコールバックよりも簡単に使用できます。また、イベントは、適切に定義されたシグネチャ パターンを持つ、イベント ハンドラにと呼ばれるデリゲートによって処理されます。イベントの詳細については、「イベントのデザイン」を参照してください。

以下のガイドラインに従うと、ライブラリ デザインで、推奨される手順に従ってイベントとコールバックを使い分けることができます。

パフォーマンスが重視される API では、コールバックを使用しないでください。

コールバックとイベントは、多くの開発者がより簡単に理解し使用できますが、パフォーマンスとメモリ消費の点から見ると、仮想メンバ に劣ります。

デリゲートを呼び出して任意のコードを実行すると、セキュリティ、正確さ、および互換性に悪影響が及ぶ可能性があることを理解してください。

イベントやコールバックを使用すると、共通言語ランタイム (CLR: Common Language Runtime) のコンテキストで任意のコードを実行できます。コードとセキュリティのレビュー時には、これらの機能拡張ポイントを慎重にチェックして、セキュリティ上の脆弱性を特定する必要があります。

Portions Copyright 2005 Microsoft Corporation.All rights reserved.

Portions Copyright Addison-Wesley Corporation.All rights reserved.

デザイン ガイドラインの詳細については、2005 年に Addison-Wesley から出版されている Krzysztof Cwalina、Brad Abrams 共著の『Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries』を参照してください。

参照

その他の技術情報

機能拡張のデザイン

クラス ライブラリ開発のデザイン ガイドライン