如何描述返回值(非空)的Action <T>委托?

use*_*949 41 .net c# delegates

Action<T>委托返回void.是否有任何其他内置委托返回非空值?

Ant*_*ram 66

是.Func<>返回指定为最终泛型类型参数的类型,例如Func<int>返回intFunc<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()));
Run Code Online (Sandbox Code Playgroud)


Mic*_*tum 18

当然,Func代表返回T.

Func<TResult> is "TResult method()"
Func<TInput, TResult> is "TResult method(TInput param)"
Run Code Online (Sandbox Code Playgroud)

一直到下来

Func<T1, T2, T3, T4, TResult>
Run Code Online (Sandbox Code Playgroud)

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

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

另外,为了完整起见,有谓词返回bool.

Predicate<T> is "bool method(T param)"
Run Code Online (Sandbox Code Playgroud)

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

  • 另外,在.NET 4中,`Func <>`可以是`Func <T1,... T16,TResult>`之前的限制是T4. (4认同)
  • 另外,对于*完整*完整性,不要忘记[`Converter(TInput,TOutput)`](http://msdn.microsoft.com/en-us/library/kt456a2y.aspx)和[`比较(T) `](http://msdn.microsoft.com/en-us/library/tfakywbh.aspx)(两者都显然早于`Func <T1,T2>`和`Func <T1,T2,T3>`,它们呈现出来过时).实际上,可能还有更多...... (3认同)