問題タブ [multicastdelegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
59704 参照

c# - 単純なデリゲート (デリゲート) とマルチキャスト デリゲート

多くの記事を読みましたが、通常作成する通常のデリゲートとマルチキャスト デリゲートの違いについてはまだ明確ではありません。

上記のデリゲート MyMethodHandler は、これら 2 つのメソッドを呼び出します。マルチキャスト デリゲートはどこから来るのでしょうか。複数のメソッドを呼び出すことができると読みましたが、デリゲートに関する私の基本的な理解が正しくないのではないかと心配しています。

0 投票する
4 に答える
1209 参照

c# - C#のMulticastDelegateではないDelegateはありますか?

答えはノーだと思いますか?ない場合、なぜ私たちはクラスDelegateを分けたのですか?MulticastDelegate多分それは「他のいくつかの.NET言語」のせいですか?

0 投票する
3 に答える
1671 参照

c# - DynamicInvokeを回避しながら、パラメーターとしてMulticastDelegateを使用する

MulticastDelegate同じ署名を持つ多数の(レガシー)デリゲートの1つを参照できるがあります。例えば:

これらのデリゲートは、イベントを定義するために使用されます。

次に、MulticastDelegateいくつかの一般的なチェックを行うために使用するを取り込むメソッドがあります。

これは、イベントが定義されたクラスの他のメソッド内から呼び出されます。

DynamicInvokeを回避する、これを行うためのより簡潔な方法はありますか?

0 投票する
1 に答える
1274 参照

c# - デリゲート型が MulticastDelegate クラスから派生するのはなぜですか? Delegate クラスから直接派生しないのはなぜですか?

デリゲート型に関する非常に基本的な質問があります。Delegateオブジェクト ブラウザでとクラスのメンバを比較しましたが、MulticastDelegateに存在する新しい追加メンバは見つかりませんでしたMulticastDelegate

DelegateクラスにGetInvocationList仮想メソッドがあることにも気付きました。したがって、Delegateクラスには複数のメソッドへの参照を保持する機能が必要だと思います。私の仮定が正しければ、Delegateクラスではなくクラスからカスタム デリゲート型を直接派生させないのはなぜだろうかMulticastDelegate

ここで何が欠けているのかわかりません。違いを理解するのを手伝ってください。

0 投票する
3 に答える
2933 参照

c# - C#のマルチキャストデリゲートで例外を処理するにはどうすればよいですか?

マルチキャストデリゲートを介して呼び出しているコードがいくつか与えられました。

そこで発生した例外をキャッチして管理する方法を知りたいのですが、それは今のところ管理されていません。与えられたコードを変更することはできません。

私は周りを見回して、GetInvocationList()を呼び出す必要があることを発見しましたが、これが役立つかどうかはよくわかりません。

0 投票する
1 に答える
2413 参照

c# - new KeyEventHandler(Form1_KeyDown) と Form1_KeyDown の違い

Windows フォーム アプリケーションでは、次のようにイベント ハンドラーを登録できます。

後で同じハンドラーを次のように登録解除します。

-= には、同じ署名の 2 番目の新しいハンドラーではなく、最初に登録されたのと同じハンドラーが必要であると予想されるため、これは奇妙に思えます。しかし、経験から、私はこれが機能することを知っています。これは、これは特殊なケースであり、実際にはそうであると私に考えさせました

その理論に基づいて、次のようなイベントを登録および登録解除するためにコードを頻繁に書き直しました。

これは安全ですか?それとも、私が気付いていない意図しない副作用がありますか?

0 投票する
3 に答える
1721 参照

c# - MulticastDelegateでBeginInvokeを呼び出しますか?

Jon Skeetによると、「BeginInvokeを呼び出すことができるのは、単一のターゲット呼び出しを持つデリゲートでのみです。」

何故ですか?本当の理由は何ですか?

注:明確にするために(そして私がこの間違いを犯したため)、私はBeginInvokeコントロールではなく、デリゲートについて話している。

0 投票する
2 に答える
3735 参照

c# - C#マルチキャストデリゲートでのマルチキャストの使用

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

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

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

0 投票する
0 に答える
230 参照

c# - DelegateとMulticastDelegateの違いは?

重複の可能性:
単純なデリゲート(デリゲート)とマルチキャストデリゲート

Delegateクラスとクラスの違いは何だろうと思っていましたMulticastDelegateか?C#のデリゲートは常にマルチキャストですよね?デリゲートには、メソッドへの複数のポインターを含めることができるためです。

delegateまた、キーワードがDelegateクラスとどのように関連しているかについても疑問に思いました。

誰かがこれをより詳細に説明できますか?

0 投票する
3 に答える
1495 参照

delphi - Delphiでの信号とスロットの実装?

Delphiには、イベントディスパッチ用のシグナルおよびスロットメカニズムの実装がありますか?