委托关键字与 Lambda 表示法
在 C# 中,出现一个关于两个 lambda 表达式的等价性的常见问题:
<code class="csharp">delegate { x = 0; } () = > { x = 0 }</code>
编译后它们的功能相同吗?
答案:
简而言之,不。它们在语法上是等效的,但生成的委托类型有所不同。
深入研究:
虽然 delegate 关键字传统上创建匿名委托,但将 lambda 与 delegate 关键字一起使用会产生也是匿名代表。但是,将 lambda 分配给表达式类型会创建一个表达式树,随后可以将其编译为匿名委托。
高级注意事项:
这些表示法之间的选择取决于预期用途:
以上是C# 中的委托关键字和 lambda 表示法在功能上是否相同?的详细内容。更多信息请关注PHP中文网其他相关文章!