gpt4 book ai didi

c# - 何时何地使用表达式树

转载 作者:可可西里 更新时间:2023-11-01 08:06:01 24 4
gpt4 key购买 nike

我正在阅读有关表达式树功能以及如何使用 lambda 表达式创建委托(delegate)的内容。我仍然不知道它在什么情况下有用,以及我应该在什么真实世界的例子中使用它。

最佳答案

表达式树的主要用途是用于进程外的 LINQ 提供程序,例如 LINQ to SQL。

当你这样写的时候:

var query = people.Where(x => x.Age > 18)
.Select(x => x.Name);

这些 lambda 表达式可以或者转换为委托(delegate),然后可以执行委托(delegate)(就像它们在 LINQ to Object 中一样)或者它们可以转换为表达式树,查询源可以对其进行分析并采取相应的行动(例如,将它们转换为 SQL、Web 服务调用等)。区别在于表达式树将代码表示为数据。如有必要,可以将它们编译成委托(delegate),但通常(无论如何在 LINQ 中)它们从不直接执行 - 只是检查以找出它们包含的逻辑。

表达式树也广泛用于动态语言运行时,它们表示在评估动态表达式时应执行的代码。表达式树非常适合这种情况,因为它们可以再次组合和分解,并且在它们被编译后,生成的 IL 将像往常一样进行 JIT 编译。

大多数开发人员永远不需要弄乱表达式树 API,尽管它还有一些其他用途。

关于c# - 何时何地使用表达式树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3528578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com