問題タブ [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#で汎用リストコレクションを返すには?
linq to sql メソッドがあり、クエリを実行すると、匿名型が返されます。
その匿名型をサービス層に戻して、ロジックや処理を実行したいと考えています。
どうやって返せばいいのかわからないけど。
これならいけると思った
しかし、私はこのエラーが発生します
したがって、どのアセンブリが欠落しているか、またはそうであるかどうかはわかりません。
ありがとう
編集
最初の問題は解決しましたが、匿名型についてあまり知らないため、修正方法がわからないという新しい問題が発生しました。
このエラーが発生します
タイプ 'System.Collections.Generic.List' を 'System.Collections.Generic.List' に暗黙的に変換することはできません
ここにクエリがあります
編集 2
選択にはこれが含まれています
c# - 匿名メソッドと非同期 I/O
Async I/O で匿名メソッドを使用すると、意図しない動作が発生する可能性があるかどうか、誰か教えてもらえますか?
例として:
同じことが BeginXXX/EndXXX 非同期 I/O にも当てはまります。
c# - 匿名のデリゲート/ラムダが out/ref パラメータの型を推測しないのはなぜですか?
out
StackOverflow に関するいくつかの C# の質問は、またはref
パラメーターを使用して匿名のデリゲート/ラムダを作成する方法を尋ねます。たとえば、次を参照してください。
これを行うには、次のようにパラメーターの型を指定するだけです。
私が興味を持っているのは、型が明示的に必要な理由です。これが事実である特定の理由はありますか?つまり、コンパイラ/言語の観点から、次のことが許可されないのはなぜですか?
またはさらに良いのは、次のとおりです。
c# - C#/LINQで通常のメソッドを匿名メソッドに置き換える
次のようなLINQクエリがあります。
代わりに、句AddMissingProp
でラムダの形式を削除して使用したいと思います。select
私は試みました...
...しかし、次のエラーが発生しました:
'f'という名前のローカル変数は、'f'とは異なる意味を与えるため、このスコープでは宣言できません。これは、'親または現在の'スコープで他の何かを示すためにすでに使用されています。
クエリを「ラムダ化」するにはどうすればよいですか?
アップデート
これも機能しません:
次のエラーが発生します。
join句の式の1つの型が正しくありません。'Join'の呼び出しで型推論が失敗しました。
条項をまったく変更しなかったjoin
ので、困惑しています。
c# - メンバー初期化子で「this」を使用できませんか?
これは合法ですか?隠れたバグや欠陥が含まれていますか?Visual Studioはエラーや警告を出しませんが、ReSharperは次のことを行います。
c# - 匿名イベント ハンドラの追加と削除
これが実際に機能したかどうか疑問に思っていましたか?
コンパイラは、イベント ハンドラーが同じであることをどのように認識しますか? これもお勧めですか?
c# - 匿名メソッドを使用した BackgroundWorker?
匿名メソッドでBackgroundWorkerを作成します。
私は次のコードを書きました:
しかし、デリゲート 'System.ComponentModel.DoWorkEventHandler' は '0' 引数を取らず、匿名メソッドに 2 つのオブジェクトを渡す必要があります:オブジェクト送信者、DoWorkEventArgs e
どうすればそれを行うことができますか?ありがとう。
c# - C#イベントハンドラデリゲートのクロージャ?
私は現在関数型プログラミングのバックグラウンドを持っているので、C#のクロージャを理解していない場合はご容赦ください。
匿名のイベントハンドラーを取得するボタンを動的に生成するための次のコードがあります。
forループのその反復での値でテキスト"I am button number " + i
が閉じられることを期待していました。i
ただし、実際にプログラムを実行すると、すべてのボタンに「」と表示されI am button number 7
ます。私は何が欠けていますか?VS2005を使用しています。
編集:それで、私の次の質問は、どうすれば価値を捉えることができるかということだと思います。
delphi - インターフェイス、匿名メソッド、およびメモリリーク
これは構築された例です。ここに元のコードを投稿したくありません。でも、関連する部分を抽出してみました。
リスナーのリストを管理するインターフェースがあります。
今、私はリスナーを登録します:
メモリリークが発生します。匿名メソッドとインターフェースの両方が解放されることはありません。これは、ここでのある種の循環参照によるものと思われます。匿名メソッドはインターフェースを存続させ、インターフェースは匿名メソッドを存続させます。
2つの質問:
- その説明を支持しますか?それとも私はここで何か他のものを逃していますか?
- それについて私にできることはありますか?
前もって感謝します!
編集:ここに投稿するのに十分小さいアプリケーションでこれを再現するのはそれほど簡単ではありません。今までにできる最善のことは次のとおりです。匿名メソッドはここではリリースされません:
delphi - Delphi 2009 で匿名プロシージャをキャストする
次のコード(問題を示すためだけに作成されたもの)は、Delphi 2010 でコンパイルおよび動作します。Delphi 2009 では、コンパイラは「E2035 実際のパラメータが不足しています」で失敗します。
この問題を回避するための非常に醜いハックを 1 つだけ見つけました (a: TProc absolute b)。このコンパイラの欠陥に対するより良い回避策を知っている人はいますか?
[TProc フィールドは実際には、さまざまな「実行可能」コード (TProcedure、TMethod、および TProc) を格納できるレコード内に隠されています。キャストは、特定の匿名プロシージャをこのフィールドに格納するために使用されます。]