刚开始接触的时候感觉无从下手、茫然不解,不过没有学不会的东西。
通过几个星期的学习,慢慢从中有所领悟。
拉姆达表达式常用于委托。
例如:
1 a => a.Equals("string"); 2 //原形为: 3 (a) => { return a.Equals("string");} 4 //相当于equals函数: 5 public bool equals(string a) 6 { 7 return a.Equals("string"); 8 }
也就是说拉姆达表达式是匿名函数,简单点就是函数。
可这样创建委托:
1 Funcdel = a => a.Equals("string"); 2 Func del = (a) => { return a.Equals("string");} 3 Func del = equals;
三者是等效的,“=>”左边的a为传入参数,就是equals(string a)中的a,“=>”右边的是语句块。
Func<string, bool>是Func<T, TResult>委托,T表示传入参数的类型,可以是值类型、类等,TResult为返回的类型。
例如:
1 Funcdel = equals; 2 //表示传入的参数为string类型,返回类型为bool,使用的时候如这样: 3 if(del("string"))Console.WriteLine("this is a string"); 4 //结果输出为:this is a string