表达式"/>
匿名函数 和 拉姆达表达式
匿名函数
匿名方法是创建与特定委托实例相关联的未命名代码块的一种方法。可以通过在代码块后面跟上delegate关键字来创建匿名方法。
delegate void print();delegate string print2(string s);class Program{static void Main(string[] args){print p1 = delegate { Console.WriteLine("不带参数的匿名委托!"); };print2 p2 = delegate(string msg) { Console.WriteLine("{0}的匿名委托", msg); return ""; };p1();p2("带参数");Console.Read();}}
拉姆达表达式
拉姆达表达式是创建匿名函数的另一种方法。因此,拉姆达表达式可以赋值给委托。虽然主要在操作LINQ中使用拉姆达表达式,但是这种表达式也适用于委托和事件。
拉姆达表达式运算符:
所有的拉姆达表达式都是用新的拉姆达运算符“=>”,该运算符讲拉姆达表达式分为两个部分:表达式左边指定了输入参数,而右边则是拉姆达主体。“=>”有时被描述为“转到”或“成为”
共有两种类型的拉姆达表达式,1.表达式拉姆达,2.语句拉姆达
表达式拉姆达:
在表达式拉姆达中,=>运算符右边的表达式对运算符左边指定的参数执行操作。该表达式的结果成为拉姆达运算符的结果并返回。
一个参数基本形式为:param=>expr 多个参数基本形式为:(param-list) => expr
如果不需要参数则必须使用空的括号。
delegate string print();delegate string print2(string s);delegate string print3(string s, string w);delegate void print4(int count);class Program{static void Main(string[] args){print p1 = () => "拉姆达表达式1";print2 p2 = a => string.Format("{0}拉姆达表达式", a);print3 p3 = (a, b) => string.Format("{0}拉姆达表达式{1}", a, b);print4 p4 = count => { for (int i = 0; i < count; i++) { Console.WriteLine("语句拉姆达{0}", i); } };Console.WriteLine(p1());Console.WriteLine(p2("带参数"));Console.WriteLine(p3("带参数", "--多参数"));Console.WriteLine("——————————————————");p4(4);Console.Read();}}
更多推荐
匿名函数 和 拉姆达表达式
发布评论