問題タブ [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# の匿名デリゲート
デリゲートを必要とする何かを 1 回呼び出すだけで、デリゲートを定義して名前を付けることにうんざりしているのは私だけではありません。たとえば、おそらく他のスレッドからフォームで .Refresh() を呼び出したかったので、次のコードを書きました。
しなければならないかどうかさえわかりません。後の段階でうまくいかないのではないかと恐れるほど読んだだけです。
InvokeDelegate は実際には別のファイルで宣言されていますが、これ専用のデリゲート全体が本当に必要なのでしょうか? 一般的なデリゲートはまったくありませんか?
たとえば、Pen クラスがありますが、Pen もあります。すべてを作り直す必要はありません。同じではありませんが、私の言いたいことを理解していただければ幸いです。
c# - C# 3.0 での匿名メソッドのクロージャ
匿名メソッドにクロージャーが存在するのはなぜですか? クロージャー変数がコピーされて新しいクラスが生成されるというオーバーヘッドなしに、状態をメソッドに渡すだけではどうですか? これは「すべてをグローバル化する」ことへの逆行ではないでしょうか。
誰かが私を説得してください、私はここで何かが欠けているように感じます...
c# - BeginInvoke のパラメーターとしての匿名メソッド?
匿名メソッドをパラメーターとしてメソッドに渡せないのはなぜBeginInvoke
ですか? 次のコードがあります。
デリゲートの宣言を避けようとしています。代わりに以下のようなものを書くことができないのはなぜですか? それとも、正しい構文を理解できないだけですか? 以下は現在、以下を生成します。
引数の型 '匿名メソッド' は、パラメーターの型 'System.Delegate' に割り当てることができません
もちろんその通りですが、これを行うために使用できる他の構文はありますBeginInvoke()
か?
(これを行うことができれば、明示的なデリゲートの代わりにアノン メソッド/ラムダを使用するという概念にうまく適合し、他の場所でもきれいに機能します。)
c# - C# で無名関数を記述する推奨される方法は何ですか?
sort2 はより明示的だと思いますが、sort 1 はより短いです。それ以外に、私は違いを本当に知りません。これを行うための推奨される方法は何ですか?
c# - ラムダ/アノンメソッドのキャプチャされた変数をコピーするときの用語
私はこのコードを翻訳しました(外部変数をキャプチャするだけで悪い副作用があります):
このコードに(上記が機能していないため):
そのほとんど知られていない副作用の回避策の正しい用語は何ですか?今のところ、「変数をキャプチャする必要があります」とコメントしました。単語キャプチャ、正しい用語ですか?
c# - クロージャーで「自己」オブジェクトにアクセスする
次の問題があります: (c#)
メソッドを持ついくつかのクラス (IRC ボット) があり、完了するにはいくつかのイベントの結果が必要です (非同期である可能性があります)。
はっきりしないかもしれません:
関数が完了したら、そのデリゲートを削除したいと思います。それ自体で閉鎖への参照を取得する方法はありますか?
c# - C# の単純な匿名メソッド
以下のコードの 2 番目のビットを参照してください。コードはコンパイルされません。anonメソッドを理解しようとしています..
しかし、私がウェブ上で見つけた、コンパイルしないアノンメソッドを使用しない例ではありません
VS2008を使用.. .NET3.5にコンパイル
c# - C# の匿名メソッドはそれ自体を呼び出すことができますか?
次のコードがあります。
自分自身を呼び出すことができるように、C# で匿名メソッドを設定する別の方法はありますか?
c# - C#では、匿名メソッドにyieldステートメントを含めることができないのはなぜですか?
私はこのようなことをするのがいいと思いました(ラムダがyield returnを実行します):
しかし、匿名メソッドではyieldを使用できないことがわかりました。なぜだろうか。歩留まりのドキュメントには、許可されていないと書かれています。
許可されていなかったので、リストを作成してアイテムを追加しました。