首页 > 后端开发 > C++ > 正文

C# 中的委托关键字和 lambda 表示法在功能上是否相同?

Linda Hamilton
发布: 2024-11-04 01:32:03
原创
877 人浏览过

Are delegate keywords and lambda notation functionally identical in C#?

委托关键字与 Lambda 表示法

在 C# 中,出现一个关于两个 lambda 表达式的等价性的常见问题:

<code class="csharp">delegate { x = 0; }

() = > { x = 0 }</code>
登录后复制

编译后它们的功能相同吗?

答案:
简而言之,不。它们在语法上是等效的,但生成的委托类型有所不同。

深入研究:
虽然 delegate 关键字传统上创建匿名委托,但将 lambda 与 delegate 关键字一起使用会产生也是匿名代表。但是,将 lambda 分配给表达式类型会创建一个表达式树,随后可以将其编译为匿名委托。

高级注意事项:
这些表示法之间的选择取决于预期用途:

  • 分配给委托类型(例如,Func、Action):使用匿名委托进行运行时代码生成。
  • 分配给表达式类型:使用表达式树进行延迟执行或自定义代码生成。

以上是C# 中的委托关键字和 lambda 表示法在功能上是否相同?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!