タグ付けされた質問 「delegates」

デリゲートはいくつかの概念を参照できます。オブジェクトは、別の(デリゲート)に依存して機能を実行できます。委任は、自己呼び出しをディスパッチするためのメソッド検索ルールを利用してプログラミング言語機能を参照することもできます。C#では、デリゲートは、イベントがトリガーされたときに呼び出すメソッドを定義します。

7
無名メソッドをvarに割り当てることができないのはなぜですか?
私は次のコードを持っています: Func<string, bool> comparer = delegate(string value) { return value != "0"; }; ただし、次のものはコンパイルされません。 var comparer = delegate(string value) { return value != "0"; }; コンパイラがなぜそれを理解できないのFunc<string, bool>ですか?これは1つの文字列パラメータを取り、ブール値を返します。代わりに、それは私にエラーを与えます: 暗黙的に型指定されたローカル変数に匿名メソッドを割り当てることはできません。 私は1つの推測を持っています、そしてそれがvarバージョンがコンパイルされた場合、私が以下を持っているならばそれは一貫性に欠けるでしょう: var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) { return false; }; Func <>は最大4つの引数しか許可しないため、上記は意味を成しません(.NET 3.5では、これが私が使用しているものです)。おそらく誰かが問題を明確にすることができるでしょう。ありがとう。




9
C#でのアクションデリゲートの使用[終了]
休業。この質問はもっと集中する必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 この質問を改善する 私はアクションデリゲートをC#で操作し、それらについてさらに学び、それらがどこに役立つかを考えていました。 誰かがアクションデリゲートを使用しましたか?それとも役に立つかもしれない例をいくつか挙げていただけますか?
132 c#  lambda  delegates  action 

8
デリゲートを使用したC#オブザーバー/オブザーバブルの非常にシンプルな例
私は最近C#を掘り下げ始めましたが、オブザーバー/オブザーバブルパターンを言語で実装するときにデリゲートがどのように機能するのか、私の人生では理解できません。 誰かが私にそれがどのように行われるかの非常に単純な例を教えてもらえますか?私はこれをグーグルで調べましたが、私が見つけたすべての例は、問題が具体的すぎるか、「肥大化」しすぎていました。


13
デリゲートをIEqualityComparerでラップする
いくつかのLinq.Enumerable関数はIEqualityComparer<T>。delegate(T,T)=>boolを実装するために適応する便利なラッパークラスはありIEqualityComparer<T>ますか?それを書くのは簡単です(正しいハッシュコードの定義で無視する問題がある場合)が、すぐに使える解決策があるかどうか知りたいのですが。 具体的には、Dictionaryメンバーシップを定義するためにキーのみを使用して(さまざまなルールに従って値を保持しながら)、sでセット演算を実行したいと考えています。
127 .net  linq  delegates 

3
ReSharper / C#で「デリゲート減算の結果は予測できません」?
myDelegate -= eventHandlerReSharper(バージョン6)の問題を使用する場合: デリゲートの減算の結果は予測できません この背後にある合理的な理由は、ここでJetBrainsによって説明されています。説明は理にかなっており、それを読んだ後、私は-デリゲートでの私の使用をすべて疑っています。 それでは、 ReSharperを不機嫌にすることなく、自動以外のイベントを作成できますか? または、これを実装するためのより良いおよび/または「正しい」方法はありますか? または、ReSharperを無視できますか? 簡略化したコードは次のとおりです。 public delegate void MyHandler (object sender); MyHandler _myEvent; public event MyHandler MyEvent { add { _myEvent += value; DoSomethingElse(); } remove { _myEvent -= value; // <-- ReSharper warning here } }

8
ラムダ式をプレーンなデリゲートパラメーターとして提供するときにキャストする必要がある理由
メソッドSystem.Windows.Forms.Control.Invoke(Delegate method)を取る なぜこれがコンパイル時エラーになるのですか? string str = "woop"; Invoke(() => this.Text = str); // Error: Cannot convert lambda expression to type 'System.Delegate' // because it is not a delegate type しかし、これはうまくいきます: string str = "woop"; Invoke((Action)(() => this.Text = str)); メソッドがプレーンなデリゲートを期待するとき?
124 c#  c#-3.0  delegates  lambda 


8
デリゲートはどこで使用しますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 7年前休業。 この質問を改善する デリゲートを必要とする実際の場所は何ですか?この方法が最善の解決策である状況またはパターンが存在することに興味があります。コードは不要です。

10
イベントとデリゲートの違い、およびそれぞれのアプリケーション[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 この質問を改善する デリゲートよりもイベントを使用することの利点は、構文上の砂糖以外にはありません。誤解しているかもしれませんが、イベントはデリゲートのプレースホルダーにすぎないようです。 違いと、いつ使用するかを説明してください。長所と短所は何ですか?私たちのコードはイベントに根ざしているので、その根底に行きたいと思います。 イベントでデリゲートを使用するのはいつですか?両方の実際の経験を、たとえば量産コードで述べてください。
106 c#  events  delegates 

7
C#イベントは同期ですか?
この質問には2つの部分があります。 引き上げイベントがスレッドをブロックし、またはそれは、非同期のEventHandlerの実行を開始しないと行くのスレッドが同時にオンに続けて? されている個々のEventHandler(イベントにサブスクライブ)を同期次々に実行、または彼らは他の人が同時に実行されていないことを保証なしで非同期で実行されていますか?
104 c#  .net  events  delegates 

4
コンパイラーのあいまいな呼び出しエラー-Func <>またはActionを持つ匿名メソッドおよびメソッドグループ
関数の呼び出しに匿名メソッド(またはラムダ構文)ではなくメソッドグループ構文を使用するシナリオがあります。 関数は、2つのオーバーロード、取るものを持ってAction、他はかかりますFunc&lt;string&gt;。 匿名メソッド(またはラムダ構文)を使用して2つのオーバーロードを喜んで呼び出すことができますが、メソッドグループ構文を使用すると、あいまいな呼び出しのコンパイラエラーが発生します。ActionまたはFunc&lt;string&gt;に明示的にキャストすることで回避できますが、これは必要ないと思います。 明示的なキャストが必要な理由を誰かが説明できますか? 以下のコードサンプル。 class Program { static void Main(string[] args) { ClassWithSimpleMethods classWithSimpleMethods = new ClassWithSimpleMethods(); ClassWithDelegateMethods classWithDelegateMethods = new ClassWithDelegateMethods(); // These both compile (lambda syntax) classWithDelegateMethods.Method(() =&gt; classWithSimpleMethods.GetString()); classWithDelegateMethods.Method(() =&gt; classWithSimpleMethods.DoNothing()); // These also compile (method group with explicit cast) classWithDelegateMethods.Method((Func&lt;string&gt;)classWithSimpleMethods.GetString); classWithDelegateMethods.Method((Action)classWithSimpleMethods.DoNothing); // These both error …
102 c#  delegates 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.