問題タブ [delegates]

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 投票する
2 に答える
1530 参照

vb.net - VB.NET でデリゲートのチェーンを動的に呼び出す方法

呼び出しチェーンを動的に作成して呼び出すことが可能かどうか誰かが知っていますか?

AとBの2つのクラスがあるとしましょう:

Func()Name( )の両方のMethodInfoを取得し、それらを動的に呼び出して、A.Func().Name()と同様の呼び出しを取得できるようにしたいと考えています。

Delegate.CreateDelegate を使用して、2 つのMethodInfoオブジェクトから呼び出すことができるデリゲートを作成できることはわかっていますが、この方法では、呼び出しチェーンの一部としてではなく、2 つの関数を個別に呼び出すことしかできません。

式ツリーを使用する .NET 3.5 用の 2 つのソリューションと、可能であれば .NET 2.0 と互換性のあるソリューションを希望します。

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

c# - C ++ mem_funと同等のC#?

C#で次のようなことをしたいのですが。

C ++では、std::mem_funのようなものを使用します。C#でどのように実行しますか?

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

java - サブクラス化を使用して、インターフェースを実装しない Java クラスを置き換える

たとえば、java.io.File は単なる具象クラスです。私の代替品は、Windows ショートカットの解決をサポートしています。抽象パスで正規化/正規化/解決を行う FileSystem オブジェクトにアクセスできないため、可能な .lnk ファイルを解決するためにコンストラクター パラメーターを前処理する必要があります。前処理の必要性により、純粋なサブクラス化が除外されます。super(...) を呼び出す前に前処理を行うことはできず、File は不変です。そこで、File を拡張してデリゲートを使用し、File のすべてのコンストラクターとメソッドをオーバーライドします (すべてのコンストラクターで super("") を呼び出します)。

これはうまく機能しますが、明らかに理想的ではありません。ファイルが変更された場合、新しいメソッドやコンストラクターをオーバーライドしていないため、基になる空の抽象パス名が公開されます。明らかな何かが欠けていますか?よりシンプルでより良い方法があるはずです。

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

c# - メソッド内でデリゲート型を作成する

匿名メソッドを作成する目的で、メソッド内に C# でデリゲート型を作成したいと考えています。

例えば:

残念ながら、.NET 2.0 と C# 2.0 を使用してそれを行うことはできません。

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

c# - C# イベント/サブスクリプション .... 参照されていないプロジェクトをリッスンする

Observerパターンを採用しようとしているアプリケーションを開発しています。基本的に、さまざまなコンポーネント (フォーム) をロードできる基本フォームがあります。

基本フォームは各コンポーネントを参照し、一部のコンポーネントは相互に参照します。

コンポーネントの 1 つが基本フォーム (おそらくメニューなどから) によって発生したイベントをリッスンするようにしたい場合、コンポーネントの基本フォームへの参照を追加する必要なしにこれを達成することはできないようです。これにより、「循環参照」が発生します。

参照されていないプロジェクトのイベントをリッスン/サブスクライブすることはできますか?

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

c# - WebBrowser.Navigated MessageBox.Show(); の場合にのみ起動します。

親スレッドは BackgroundWorker であり、他にもやるべきことがたくさんあるため、バックグラウンド STA スレッドから動的にインスタンス化されている WebBrowser コントロールがあります。

問題は、.Navigate() に指示したメソッドで MessageBox.Show() をポップしない限り、Navigated イベントが発生しないことです。私は説明します:

これは正常に機能します。ただし、これは自動化アプリであるため、メッセージ ボックスが邪魔になります。MessageBox.Show() を削除すると、WebBrowser.Navigated イベントが発生しません。この行を Thread.Sleep() に置き換え、親スレッドを中断してみました。

これを片付けたら、WebBrowser がその仕事をしている間に親スレッドを一時停止し、結果の HTML を親スレッドに戻す何らかの方法を見つけて、さらにロジックを続行できるようにします。

なぜこれを行うのですか?どうすれば修正できますか?

POST動詞もQueryString を介してデータを渡す場合、この演習全体が不要になるため、その答えも受け入れます。


解決策:チームアーキテクトの提案で、BackgroundWorkerとスレーブスレッドをまったく使用しないことになりました...応答性を犠牲にしていますが:(

0 投票する
9 に答える
122734 参照

c# - C# でのアクション デリゲートの使用

私は C# で Action Delegates を使って作業していましたが、それについてもっと学び、どこで役立つかを考えていました。

アクションデリゲートを使用した人はいますか?もしそうなら、それはなぜですか? または、それが役立つ可能性のある例をいくつか挙げていただけますか?

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

c# - パラメーターが異なる 2 つのメソッドの C# デリゲート

私は次の方法を使用しています:

私がこれまでに発見したことから、署名が異なる 2 つのメソッドに対して単一のデリゲートを使用することはできないようです。

このようなものを書くための他の選択肢はありますか:

現時点で考えられるのは、2 つのデリゲートとブール値フラグを使用して、どのデリゲートを呼び出すかを知ることだけですが、それは長期的な解決策ではありません。

ジェネリックとデリゲートを組み合わせることは可能ですか? もしそうなら、あらゆる種類のドキュメントへのリンクはありますか?

環境: C# 2.0

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

asp.net - Event handling in Dynamic asp.net user Control

I have a page, where I want to dynamically add asp.net user controls. The scenario is that we want that on specific event of a control, It disposes itself and loads another control in the page.

I am not able to have solution about how to do this?

Anyone have decent idea?