一、Action(没有返回值的委托,参数可有可无)
1.Action是无参无返回值的委托,用法如下:(非泛型Action)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 //无参无返回值的Action 2 Action a = () => { Console.WriteLine("这是无参数无返回值的Action"); }; 3 a();
输出:这是无参数无返回值的Action
2.Action<T>是有参数无返回值的委托,用法如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 //有参数无返回值的 2 Action<string, int> a = (s, i) => { Console.WriteLine(s + i); }; 3 a("中国", 2);
输出:中国2
二、Func<T>
有返回值的委托,如果只指定了一个泛型类型,那么这个类型就是返回值的类型;如果指定了多个泛型类型,那么最后一个泛型的类型是返回值类型。
1.只有一个泛型类型
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 Func<string> f = () => { return "这是返回值"; }; 2 Console.WriteLine(f());
输出:这是返回值
2.有多个泛型类型
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 Func<int, double, string> func = (i, d) => { return (i + d).ToString(); }; 2 Console.WriteLine(func(1, 1));
输出:2