表达式树允许您用常规 C#表达代码,但可以对其进行解构、检查和解释。例如,您可以通过编写等效的 TSQL 字符串(例如:LINQ-to-SQL 或实体框架)或 Web 服务查询 (astoria) 来解释它。您可以将其解释为 RPC 调用(我编写了一个基于表达式的 RPC 层)。
- 委托版本(
Func<int,int,bool>) 是 勤奋的管理者;“我需要你给我一种从 2 个整数到一个布尔值的方法;我不在乎如何 - 当我准备好时,我会问你 - 你可以告诉我答案”。- 表达式版本(
Expr<Func<int,int,bool>>)是 尽职的分析师;“我需要你向我解释一下——如果我给你 2 个整数,你会如何给我一个布尔值?”
如果您有表达式,您可以调用来Compile()形成委托(完全按照说明进行操作),或者您可以取消选择它并根据他们采取的步骤执行类似的操作。
另一种观点Expression是,它可以充当简化版本ILGenerator- 但仍然非常通用。对于元编程非常有用。这是一篇探讨该方法的文章。
| 归档时间: |
|
| 查看次数: |
4290 次 |
| 最近记录: |