C#中的Lambda表达式
这节讲一个C#编程利器:Lambda表达式。
Lambda表达式(Lambda Expression)是C#中一种特殊语法,它的引入,使得匿名方法更加简单易用,最直接的是在方法体内调用代码或者为委托传入方法体的形式与过程变得更加优雅。
Lambda表达式实际上是一种匿名函数,在Lambda表达式中可以包含语句以及运算等操作。并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。使用Lambda表达式可大大减少代码量,使得代码更加的优美、简洁,更有可观性。
它的语法为:参数列表=>表达式体
请看一段代码:
class Program { static void Main (string[] args) { new TestLambda ().GeneralMethod (Show); } ? public static void Show () { Console.WriteLine ("我是一个方法"); } ? } ? class TestLambda { public void GeneralMethod(Action a) { a.Invoke (); } }
一般我们填充委托,就是正常的传入一个方法,但使用Lambda表达式以后就可以进行将代码简化为如下样式:
class Program { static void Main (string[] args) { new TestLambda ().GeneralMethod (() => { Console.WriteLine ("我是一个Lambda表达式"); }); } } ? class TestLambda { public void GeneralMethod(Action a) { a.Invoke (); } }
将方法体直接嵌入到参数列表中。
因为上述代码只有一行,在这种情况下,可以进一步简化:
new TestLambda ().GeneralMethod (() =>Console.WriteLine ("我是一个Lambda表达式"));
单行Lambda表达式可以简化大括号和冒号结尾符。
一般的,凡是使用到委托传方法的地方,都可以将代码简化为Lambda表达式形式,这就是一种比较好玩的语法糖,初学者接受起来难免会生疏,所以要多写代码,孰能生巧。
个人公众号,热爱分享,知识无价。