看一下Lambda表达式。Lambda.表达式是简化匿名方法的语法的一种方式。实际上,Lambda表达式还有其他用处,但为了简单起见,只介绍Lambda表达式的这个方面。使用Lambda表达式可以重写上一节最后的一段代码,如下所示:
myTimer.Elapsed += (source,e) => WriteLine ("Event handler called after " + $"{ (source as Timer).Interval} milliseconds.");
这段代码初看上去有点让人摸不着头脑(除非很熟悉所谓的函数式编程语言,如Lisp或Haskell)。但如果仔细观察,就会看出或至少推断出代码是如何工作的,它与所替代的匿名方法有什么关系。Lambda表达式由以下3个部分组成:
• 放在括号中的参数列表(未类型化)
• =>运算符
• C#语句
使用前面“匿名类型”中介绍的逻辑,从上下文中推断出参数的类型。=>运算符只是把参数列表与表达式体分开。在调用Lambda表达式时,执行表达式体。
编译器会提取这个Lambda表达式,创建一个匿名方法,其工作方式与匿名方法相同。其实,它会被编译为相同或相似的CIL代码。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>