一.匿名函数
匿名函数是一种定义时不起函数名的技术,因此无法直接调用,通常用来赋值给委托后被委托调用。在匿名方法中您不需要指定返回类型,它是从方法主体内的 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)); //输出13
Cal cal3 = (int a) =>
{
return 10 + a;
};
Console.WriteLine("lambda初始化委托:");
Console.WriteLine(cal3(3)); //输出13
Cal cal4 = a =>
{
return 10 + a;
};
Console.WriteLine("简化lambda初始化委托:");
Console.WriteLine(cal4(3)); //输出13
}
}
}