匿名方法
本质上就是一个方法,只是没有名字,任何可以使用委托变量的地方都可以使用匿名方法赋值。
Func<int, int, int> plus = delegate(int arg1,int arg2)
{ //等号“=”后面跟的就是匿名方法
eturn arg1 + arg2;
};
lambda表达式
lambda表达式用来代替匿名方法。所以lambda表达式也是一个方法
lambda表达式的参数不需要声明类型
Func<int,int,int> plus = (arg1,arg2)=>
{
return ar1 + arg2 ;
};
这里与上面匿名方法不同,不需要定义delegate类型。
当lambda表达式只有一个参数的时候,可以不加上括号,当函数体只有一行语句时,我们可以不加上大括号以及return语句。
Func<int,int> plus2 = arg => arg + 1;