web-dev-qa-db-ja.com

C#の標準デリゲート

C#で事前定義されたデリゲートがいくつかあります

私はこれらを知っています:

EventHandler // Default event callbacks
EventHandler<T> // Default event callbacks with custom parameter (inheriting from EventArgs)
Action // Function without return value and without parameter
Action<T1, T2, T3, T4> // Function without return value and 1-4 parameters
Func<T1, T2, T3, T4, TResult> // Methos with 0-4 parameters and one result type
Predicate<T> // equivalent to Func<T, bool>

フレームワークの特殊なケースや生成されたフォーム部分にはさらに多くのものがありますが、これらは多くの場合、自己記述コードで使用するのに適しています。

もっと便利なものがわかっている場合は、それらを追加してください。そうでなければ、これは答えられます。

43
Tarion

これらはC#では事前定義されていません。それらはframeworkによって定義されます。

ActionおよびFuncデリゲートファミリーは、あなたが示したよりも幅が広く、

Action<T1, T2, T3, T4>

そして

Func<T1, T2, T3, T4, TResult>

リスト操作(LINQの前)用の.NET 2.0のもう1つの一般的なものは、Predicate<T>です。

スレッドを操作する場合:

ThreadStart
ParameterizedThreadStart
WaitCallback
TimerCallback
AsyncCallback
26
Jon Skeet

Predicate<T>と同等のFunc<T, bool>を使用するのが好きです

3
Brian Genisio

Goto ReflectorSystem.MulticastDelegateを検索し、派生型を確認します。あなたが探しているすべての代議員のリストが表示されます。

2
NileshChauhan

私も出くわしました

Comparison<T> 

の中に

List.Sort(Comparison<T>)

一般的な方法。これは現在、次のものと同等だと思います。

Func<T1, T2, int> 

私はWaitCallbackThreadStartを頻繁に使用して、言及を得ることができます。

あなたが探しているデリゲートの署名を知っているが、が存在するかどうかわからない場合使用できる署名を使用してデリゲートします。ブログで、 これらの手順 に従って1つを見つけることができます。

0
Kent Boogaart

System.Windows.ValidateValueCallbackは、依存関係プロパティの有効な値を検証するコールバックとして使用されるメソッドを表します。

続きを読む: MSDN:ValidateValueCallback Delegate

0
CSharper