問題タブ [anonymous-methods]
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.
c# - 匿名メソッド - C# から VB.NET へ
ターミナル サーバーにアプリケーションの単一の VB.NET インスタンスを実装する必要があります。これを行うために、Flawless Codeブログのコードを使用しています。コードが C# で記述されていて、VB.NET でサポートされていない匿名メソッドを使用していることを除いて、これはうまく機能します。VB.NET でイベントとして使用できるように、以下を書き換える必要があります。
c# - 匿名メソッドを使用して動的にイベントをサブスクライブする方法は?
を使用して多数UserControl
の を動的に作成してLoadControl(String)
おり、それぞれのイベントをサブスクライブしたいと考えています。
Interface
すべての私のコントロールは、 common の実装を必要とするcommon を継承しますEvent
:
したがって、ページの読み込みイベントで次のことを行います。
このイベントに参加者を登録するにはどうすればよいですか?
c# - 匿名メソッド、スコープ、およびシリアル化
次のコードがあるとします。
このシナリオでは、オブジェクトと値のスコープはどうなりますか? x は値型であるため、値によって Bar に渡されます。したがって、そのスコープに何もする必要はありません。しかし、yはどうなりますか?y の値は、b が実際に評価されたときに返されるようにしておく必要があります。Foo はすべて、後で y を評価するために保持されていますか? Foo は GC されていないとしか思えません。
ここで、Bar をディスクにシリアライズし、後でデシリアライズするとします。実際に連載されたのは?Fooも連載したの?Bar がデシリアライズされた後に b を評価できるようにするには、どのような魔法が使われているのでしょうか? IL で何が起こっているのか説明できますか?
.net-3.5 - マーシャリングされた管理されていないデリゲートとして .net 3.5 Action または Func を使用できますか?
私は自分の好みに合わせてコードを変更しようとしています。Idisposable を実装してロード呼び出しをラップし、必要に応じて解放するクラスを作成しました。ただし、匿名デリゲートを使用できる場合、構文を理解できないようです。
最後の行は、指定された Type がジェネリック型定義であってはならないことを示す引数例外をスローします。これを回避する方法はありますか、または管理されていないことを行うために名前付きデリゲートを提供する必要がありますか?
アンマネージ コードを含むウィンドウでデフォルトで実行できることに関心のある方は、リンク (ショートカットの作成、DLL の動的ロード) を参照してください。
c# - 「匿名」イベント ハンドラの登録を解除するにはどうすればよいですか
イベントをリッスンする場合は、次のように言います。
このイベントの登録を解除するにはどうすればよいですか? それとも、メモリがリークするのを許しますか?
c# - C# - 匿名関数とイベント ハンドラー
次のコードがあります。
イベント メンバー (FoundStep) をローカルのインプレース匿名関数に登録する方法に注目してください。
私の質問は次のとおりです: 関数 'FindStepByType' が終了するとき - 匿名関数はイベントのデリゲート リストから自動的に削除されますか、または関数をステップアウトする前に手動で削除する必要がありますか? (そして、どうすればそれを行うことができますか?)
私の質問が明確だったことを願っています。
c# - パラメータを使用してジェネリック関数を呼び出すためのタイムアウトの実装
サードパーティのCOMdllで呼び出されたメソッドがハングアップしたときに、タイムアウトを強制するために使用するActionデリゲートタイプの使用に頭を悩ませようとしています。多くの検索を行った後、Action<>またはFunc<>を使用して、呼び出されたメソッドがパラメーターを返すかどうかに応じて、最大4つの汎用パラメーターを渡すことができることがわかりました。
この例では、voidを返し、2つのパラメーターを受け取る一連のメソッドでタイムアウトを呼び出したいと思います。以下は私がまとめているコードですが、BeginInvokeを正しくコーディングする方法を決定できません。「Targ1」と「Targ2」を配置するように求められますが、param1またはparam2を入力すると、VS2008はこれらを通知します。値は不確定です。
これまでのコードは次のとおりです。
ここで何が間違っているかについてのアイデアは大歓迎です。
以下は、最初のコメントに基づいて再編集されたコードです
これまでの入力に感謝します。以下をコンパイルします。私はそれを呼び出す際に構文を正しく理解できないようです。
次のメソッドを呼び出して、これをテストしようとしています。
しかし、次のコードは正しくありません。
更新 されたコードフォーラムユーザーが将来参照できるようにコードを投稿しました。以下のコードは機能しているようです。チェックする唯一のポイントは、結果がアクションに関連付けられていないため、同じ関数で「action.EndInvoke(result)」を実行するときに、ユニットテストによって例外がスローされることです。これはおそらく、私のLongProcessが単なるThread.sleepであるためです。これは、この場合、2回目の呼び出しが行われるまでに中止されていないことを意味します。
c# - 同じ匿名メソッドへの 2 つのデリゲート インスタンスの作成は等しくありません
次のコード例を検討してください。
古き良き名前付きメソッド アプローチ (new Action(MyMethod)) を使用する場合と同様に、2 つのデリゲート インスタンスを比較すると等しいと想像できます。.NET Framework はデリゲート インスタンスごとに非表示のクロージャ インスタンスを提供するため、両者は等しいとは言えません。これら 2 つのデリゲート インスタンスはそれぞれ、Target プロパティが個別の隠しインスタンスに設定されているため、比較されません。考えられる解決策の 1 つは、匿名メソッド用に生成された IL が現在のインスタンス (このポインター) をデリゲートのターゲットに格納することです。これにより、デリゲートを正しく比較できます。また、隠しクラスではなく、クラスがターゲットであることがわかるため、デバッガーの観点からも役立ちます。
この問題の詳細については、私が Microsoft に提出したバグを参照してください。バグ レポートには、この機能を使用している理由と、変更する必要がある理由の例も示されています。これも問題だと思われる場合は、評価と検証を提供してサポートしてください。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=489518
機能を変更すべきではない理由が考えられますか? これが問題を解決するための最善の行動だったと思いますか、それとも別の方法を取ることをお勧めしますか?
c# - 匿名のメソッド/関数: 基本的な機能または OO 原則の違反?
perl や C# などの主流言語による匿名メソッド/関数への最近の動きは、何か重要なことですか、それともオブジェクト指向の原則に違反する奇妙な機能ですか?
最新バージョンの Intel の Thread Building Blocks や Microsoft の PPL や Linq のような最近のライブラリは、そのようなものに依存しているのでしょうか。
現在、Java のような匿名メソッド/関数を拒否している言語は、純粋な OO モデルに固執するという賢明な選択を行っているのでしょうか、それとも基本的なプログラミング機能が欠けているために後れを取っているのでしょうか?
php - PHP 外部クラスのメソッドを MyClass にインポートする
これがPHP Landで可能かどうか疑問に思っています:
次のようなクラスがあるとしましょう。
そして別のクラス:
「anotherClass」の長さは 3500 行で、myClass で使用する単一の「addFive」メソッドが必要です。
- 関数をインポートしてクラスで呼び出すことができ、$this が myClass オブジェクトを参照する方法はありますか?
- これは良い/悪い習慣ですか?
- (オプション) これは Python ではどのように機能しますか? (私はPythonを学び始めているので、ちょっと興味があります)