一.匿名函数
匿名函数是一种定义时不起函数名的技术,因此无法直接调用,通常用来赋值给委托后被委托调用。在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的
它的语法形式为:delegate (input-parameters) { statement; }
二.lambda表达式
Lambda 表达式语法提供了=> 运算符来创建匿名函数,因此是匿名函数的简化形式。
(input-parameters) => { statement; }
当只有一个参数时,小括号和参数类型可省略,否则括号是必须的。
namespace Console0719
{class Program{public class DelegateTest{public static int add10(int a){return 10 + a;}}//step1:声明委托(类似函数签名,无需实现)public delegate int Cal(int a);static void Main(string[] args){Cal cal1 = DelegateTest.add10;Console.WriteLine("方法初始化委托:");Console.WriteLine(cal1(3)); //输出13 Cal cal2 = delegate (int a){return 10 + a;};Console.WriteLine("匿名方法初始化委托:");Console.WriteLine(cal2(3)); //输出13Cal cal3 = (int a) =>{return 10 + a;};Console.WriteLine("lambda初始化委托:");Console.WriteLine(cal3(3)); //输出13Cal cal4 = a =>{return 10 + a;};Console.WriteLine("简化lambda初始化委托:");Console.WriteLine(cal4(3)); //输出13}}
}