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