6

シングルキャストデリゲートよりもマルチキャストデリゲートがあると便利なのはいつですか。

私は主にC#ラムダと組み合わせてデリゲートを頻繁に使用しますが、C#デリゲートのマルチキャストの側面を使用したいという衝動を感じたことはありません。つまり、複数のデリゲートを1つのデリゲートにまとめたいとは思っていません。したがって、マルチキャストデリゲートがどのような状況で役立つのか非常に興味があります。たとえば、デリゲートをチェーンしたり、リストに入れたりするなど、他の方法で機能を簡単に実装できる例しか考えられません。

特に、ここでのEric Lippertの回答は、C#チームでさえデリゲートの多元性を忘れることがあるという印象を与えます。

4

2 に答える 2

8

ここでは、イベントとして機能するものはすべて古典的な答えです。呼び出し元は、誰がリッスンしているのかを知る必要はありません(nullでない場合は、呼び出すだけです)。これは、複数の操作が同時にサブスクライブできるため理想的です。たとえば、ビューモデルの同じプロパティを監視(データバインディング)する3つの別々のコントロールです。

デリゲートが関数として(特に戻り値を使用して)機能している場合は、それをどのように処理するかを考える必要があるため、注意が必要です。最後?集計?

于 2011-06-09T18:38:04.093 に答える
7

イベントは、MulticastDelegatesの使用法の代表的な例です。だから、おそらく気づかずに、あなたはそれらを毎日使っています。

于 2011-06-09T18:35:35.887 に答える