Action Func: MSDN: Action Func
泛型委托:
public delegate TResult Func<TResult>(); public delegate TResult Func<T,TResult>(T arg); public delegate TResult Func<T1,T2,TResult>(T1 arg1,T2 arg2); public delegate TResult Func<T1,T2,T3,TResult>(T1 arg1,T2 arg2,T3 arg3); public delegate TResult Func<T1,T2,T3,T4,TResult>(T1 arg1,T2 arg2,T3 arg3,T4 arg4);
1、返回void, 带一个参数,需要使用Action<T>
//无返回(void), 带一个参数
Action<int> funcRetrunVoid = new Action<int>(RetrunVoidFunc);//Lambda: Action<int> funcRetrunVoid = new Action<int>((arg) => arg++);
funcRetrunVoid(2);//调用
private void RetrunVoidFunc(int value)
{
int v = 0;
v = value;
}
2、无参数,有返回值
//无参数,有返回值
Func<int> funcNoArgs = new Func<int>(NoArgsFunc);//Lambda: Func<int> funcNoArgs = new Func<int>(() => { return 100; });
int iret = funcNoArgs();
private int NoArgsFunc()
{
return 3;
}
3、有返回值,有参数
//有返回值,有参数
Func<int, bool> funcHasArgsAndReturn = new Func<int, bool>(HasArgsAndReturnFunc);
//Lambda: Func<int, bool> funcHasArgsAndReturn = new Func<int, bool>((arg) => {return arg > 0 ? true : false;});
bool bret = funcHasArgsAndReturn(1);
private bool HasArgsAndReturnFunc(int value)
{
return value > 0 ? true:false;
}