gpt4 book ai didi

c# - delegate 关键字与 lambda 表示法

转载 作者:IT王子 更新时间:2023-10-29 03:30:22 27 4
gpt4 key购买 nike

编译后,有没有区别:

delegate { x = 0; }

() => { x = 0 }

?

最佳答案

简短的回答:没有。

可能不相关的较长答案:

  • 如果您将 lambda 分配给委托(delegate)类型(例如 FuncAction),您将获得匿名委托(delegate)。
  • 如果您将 lambda 分配给一个表达式类型,您将得到一个表达式树而不是匿名委托(delegate)。然后可以将表达式树编译为匿名委托(delegate)。

编辑:以下是表达式的一些链接。

  • System.Linq.Expression.Expression(TDelegate) (从这里开始)。
  • Linq in-memory with delegates(例如 System.Func)使用 System.Linq.Enumerable .使用表达式的 Linq to SQL(以及其他任何东西)使用 System.Linq.Queryable .检查这些方法的参数。
  • Explanation from ScottGu .简而言之,Linq in-memory 将产生一些匿名方法来解析您的查询。 Linq to SQL 将生成表示查询的表达式树,然后将该树转换为 T-SQL。 Linq to Entities 将生成表示查询的表达式树,然后将该树转换为适合平台的 SQL。

关于c# - delegate 关键字与 lambda 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/299703/

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