web-dev-qa-db-ja.com

値を返すAction <T>デリゲートを記述するにはどうすればよいですか(非void)?

Action<T>デリゲートはvoidを返します。非void値を返す他の組み込みデリゲートはありますか?

41
user496949

はい。 Func<>は、Func<int>intを返し、Func<int, string>が整数を受け入れて文字列を返すように、最終的なジェネリック型パラメーターとして指定された型を返します。例:

Func<int> getOne = () => 1;
Func<int, string> convertIntToString = i => i.ToString();
Action<string> printToScreen = s => Console.WriteLine(s);
// use them

printToScreen(convertIntToString(getOne()));
66
Anthony Pegram

もちろん、Func DelegatesはTを返します。

Func<TResult> is "TResult method()"
Func<TInput, TResult> is "TResult method(TInput param)"

までずっと

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

http://msdn.Microsoft.com/en-us/library/bb534960.aspx

http://msdn.Microsoft.com/en-us/library/bb534303.aspx

また、完全を期すために、boolを返すPredicateがあります。

Predicate<T> is "bool method(T param)"

http://msdn.Microsoft.com/en-us/library/bfcke1bz.aspx

17
Michael Stum