Lambda拉姆达表达式


    刚开始接触的时候感觉无从下手、茫然不解,不过没有学不会的东西。

    通过几个星期的学习,慢慢从中有所领悟。

    拉姆达表达式常用于委托。

    例如:

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     Func<string, bool> del = a => a.Equals("string");
2 Func<string, bool> del = (a) => { return a.Equals("string");}
3 Func<string, bool> del = equals;

 

    三者是等效的,=>左边的a为传入参数,就是equals(string a)中的a,“=>”右边的是语句块

    Func<string, bool>是Func<T, TResult>委托,T表示传入参数的类型,可以是值类型、类等,TResult为返回的类型。

    例如:

1     Func<string, bool> del = equals;
2 //表示传入的参数为string类型,返回类型为bool,使用的时候如这样:
3 if(del("string"))Console.WriteLine("this is a string");
4 //结果输出为:this is a string

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM