表达式
Func<int> compiled = return5.Compile(); // 把Lambda表达式转换成表达式树。 // (这种转换有限制,此处不详谈。)
2.2 Lambda表达式与LINQ
LINQ(Language Integrated Query)是一种基于中间查询能够直接反馈到C#语言环境当中的技术。
LINQ提供器的中心思想在于:从一个熟悉的源语言(比如C#)生成一个表达式树,将结果作为一个中间格式,再将其转换成目标平台上的本地语言(比如SQL)。
LINQ to Objects方式是:使用含有Lambda表达式的C#查询代码,再由转化为相应的IL,在CLR中执行。
LINQ to SQL方式:编译成使用表达式树IL,在执行时,动态执行sql语句(IL已经处理好怎么让LINQ to SQL提供器处理到本地语言)。
……
除了LINQ to Objects和LINQ to SQL还有其他的数据查询方式,此处不展开。
==================================================================================
下节预告:
Lambda表达式提供编译时检查的能力,它与表达式树一起的话,会有神奇反应。
注释:
[1] Lambda语法简写
[2] 图源自 维基百科
[3] 此笔记主要参考 《深入理解C#》(第3版)Jon Skeet 著 姚琪琳 译
|