class Program
{
static void Main(string[] args)
{
// 匿名方法:方法没有名字
Func<int, int, int> plus = delegate (int a, int b)
{
return a + b;
};
// 这里相当于直接把要引用的方法直接写在后面
// 优点:减少了要编写的代码,减少代码的复杂性
int res = plus(10, 2);
Console.WriteLine(res); // 12
// Lambda表达式(匿名方法的简写)
Func<int, int, int> plus2 = (a, b) => { return a + b; };
// 只有一条语句时可以再简写
Func<int, int, int> plus3 = (a, b) => a + b;
// 只有一个参数时,可以再简写
Func<double, double> plus4 = a => a * a;
// 可以访问外部变量(需要谨慎)
int c = 5;
Func<int, int> f = x => x + c;
Console.WriteLine(f(10)); // 15
}
}