Action 与 Func 是 APS.NET 内置委托
//-------------- 无返回值的委托 Action---------------------------
Action 是无返回值的泛型委托
Action 表示无参, 无返回值的委托
Action<int,string> 表示有传入参数 int,string 无返回值的委托
Action<int,string,bool> 表示有传入参数 int,string,bool 无返回值的委托
Action<int,int,int,int> 表示有传入 4 个 int 型参数, 无返回值的委托
Action 至少 0 个参数, 至多 16 个参数, 无返回值
- //1. 无参数, 无返回值的委托
- Action action = () => {
- Console.WriteLine("无参数, 没有返回值!");
- };
- action();
- //2. 带参数, 无返回值的委托
- Action<int, int> action = (x, y) => {
- Console.WriteLine(x + y);
- };
- action(100, 100);
- //-------------- 有返回值的委托 Func----------------------------
Func 是有返回值的泛型委托
Func<int> 表示无参, 返回值为 int 的委托
Func<object,string,int> 表示传入参数为 object, string 返回值为 int 的委托
Func<object,string,int> 表示传入参数为 object, string 返回值为 int 的委托
Func<T1,T2,,T3,int> 表示传入参数为 T1,T2,,T3(泛型) 返回值为 int 的委托
Func 至少 0 个参数, 至多 16 个参数, 根据返回值泛型返回. 必须有返回值, 不可 void
Func 为有返回值的委托 其中 最后一个参数类型为返回值的参数类型
- //1. 无参数, 有返回值的委托
- Func<int> func = () => {
- return 100;
- };
- int r = func();
- Console.WriteLine(r);
- //2. 带参数, 有返回值的委托
- Func<int, int, int, int, int> func = (x, y, z, w) => {
- return x + y + z + w;
- };
- var sum = func(1, 2, 3, 4);
- Console.WriteLine(sum);
来源: http://www.bubuko.com/infodetail-3038292.html