1:lambda表达式是基于委托来实现的,是匿名函数的另外一种根伟抽象的书写方法
首先来看看匿名函数(匿名方法): 有一些方法只使用一次,就不用谢一个具体的方法来提供调用。案列
namespace 匿名方法
{
//委托
public delegate void DelCompare();//无参数无返回值的委托
public delegate void DelComparePram(); / /有参数,无返回值的委托
public delegate int DelComparePramRet(int a , int b ); / /有参数,有返回值的委托
class Program
{
static void Main(string[] args)
{
DelCompare delpare1 = delegate() { Console.WriteLine("匿名函数方法体") ; } ;
delpare1 (); / /输出
DelComparePram delpare2 = delegate(string str) { Console.WriteLine("带参数的匿名函数方法体:参数是 :" +str) ; } ;
delpare2 ("张三");//输出
DelComparePramRet delpare3 = delegate(int a ,int b ) { return a + b ; } ;
Console.WriteLine(delpare3(10 , 20 ) ) ; //这里输出30,因为匿名函数中是对两个值进行了相加
/ /上面就是匿名函数的,无参,带参无返回值,带参有返回值的三种写法,匿名函数继续简化后就是lambda表达式的写法了,如下 = () => { };
DelCompare d_lambda = () => { Console.WriteLine( "匿名无参方法体" ) ; } ;
d_lambda ();
DelComparePram d_lambdaPram = str => { Console.WriteLine("参数是 :" + str) ; }; / /带一个参数 可以省略小括号
d_lambdaPram ("传入参数");
DelComparePramRet d_delpareRet = ( x , y ) => { return x + y ; };
int sum = d_delpareRet(10 , 20 ); / /返回 10 和 20 的和。
}
}
}
结尾,lambda表达式是匿名函数的一种更为简单的写法,在有参数的lambda表达式中,参数不用指定类型 , 因为在委托中就已经指定了类型了