1

.NET のカスタム イベントに関して、イベント引数を渡すための推奨される設計パターンは何ですか? 発生する可能性のあるイベントごとに個別のEventArgs派生クラスを用意する必要がありますか?それとも、イベントがすべて同じクラスのイベントによって発生する場合は、イベントに対して 1 つのクラスを使用してもかまいませんか?

4

4 に答える 4

1

イベントごとに個別の EventArgs 派生クラスを用意する必要はありません。車輪を再発明するのではなく、既存の EventArgs 派生クラスを使用することは完全に受け入れられ、望ましいことですらあります。

これらは、既存のフレームワーク クラスである可能性があります (たとえば、イベント ハンドラーにアクションをキャンセルする可能性を与えるだけの場合は、System.Component.CancelEventArgs.

または、イベント ハンドラーに渡すアプリケーション固有のデータがある場合は、独自の EventArgs 派生クラスを作成できます。同じクラスまたは異なるクラスの 2 つのイベントが同じデータを送信している場合、同じ EventArgs 派生クラスを使用してはならない理由はありません。

于 2008-09-19T17:40:42.387 に答える
1

私は通常、各イベントに共通のデータを持つ基本 EventArgs クラスを作成します。特定のイベントにさらにデータが関連付けられている場合は、そのイベントのサブクラスを作成します。それ以外の場合は、基本クラスを使用します。

于 2008-09-19T14:06:24.477 に答える
0

OABと同様に、使用するコンポーネントまたはアプリケーションに固有のデータを追加することでEventArgsを拡張するカスタムの「base」argsクラスを作成します。たとえば、会計エクスポートアプリケーションでは、ベースのExportEventArgsがAccountNoプロパティを追加します。

于 2008-09-19T14:20:28.000 に答える
0

イベントが何であるかによって異なりますが、ほとんどの場合、イベントを消費する人のために、EventArgs から派生する単一のカスタム クラスを作成します。

于 2008-09-19T14:05:16.523 に答える