-3

イベント ハンドラーとデリゲート メソッドのどちらを使用するかを決定する際に考慮すべき考慮事項は何ですか?

たとえば、機能の実装を別のオブジェクトに延期するために、デリゲート メソッド オプションを選択します。そして、主に他のオブジェクトが更新をサブスクライブできるようにする目的で、イベント ハンドラー オプションを選択します。

しかし、明らかに、ご覧のとおり、これらは非常に大雑把な基準です。Stackoverflow で同様の質問をいくつか読んだことがありますが、それらは非常に具体的な問題を対象としていますが、私は一般的な使用法に関心があります。

入力はありますか?

ありがとう。

4

1 に答える 1

1

上記のように、状況によって異なります。 Delegates以前は、ロジックを実装するための別のメソッドがロジックに必要でした。これにより、Delegate正当化するのが困難になりました。ただしLambda Expressions、実際には非常に便利で強力になり、Anonymous Methods簡単に正当化できます。DelegateType

Delegates次の場合に最適です。

  • イベント ハンドラ
  • スレッドの開始
  • コールバック
  • リンク

特別なコードを持つテンプレートの概念的な概念は、Delegate非常に優れています。

が操作されたときに何らかの形式の通知を提供する を探しEvent Handlerている場合、 は理想的です。最も一般的な実装と最も簡単な例は、. それぞれは を表し、 のそれぞれには、変更が行われたことを示すイベントがあります。ClassObjectUser InterfaceClassControlControlInterface

AButtonクリックされることがすべての目的です。ただし、クリックされるまで、実行したり何かをしたりする必要はありません。の例Event Handler

多くの場合、自然界ではDelegate. 推論はDelegate Object、メソッドをカプセル化して、匿名で呼び出すことができるようにすることです。AnEventは、が発生したときに呼び出されるメソッドをClassクライアントが指定できるようにする方法です。DelegateEvent

すべてのEvent Handlerは、相関する に呼び出されるプロシージャですEvent。これらEvent Handlersには次の 2 つの要素が必要です。

  • Delegate
  • Eventオプションで、そのデータを保持するクラス。

したがって、ほとんどの場合、それらは手を取り合って進みます。

明らかに、あなたの質問は詳細を提供していないため、物理的に回答したり、基準に合わせたりすることが難しくなります。

あなたを助けるいくつかのサイト:

これらは両方とも重要な概念であるため、理解することが非常に重要です。うまくいけば、これが少し明確にするのに役立ちます。

于 2013-02-08T16:38:08.593 に答える