c# - c# 与 vb.net 中的 lambda 表达式

标签 c# vb.net lambda

在功能上,C# 和 VB.Net 中的 lambda 表达式之间是否有任何区别(除了明显的语法)?

编辑:跟进 CraigTP 的回答:是否提及 .Net 4 中的情况?

编辑:我问是因为我习惯了 C#,但对于下一个项目,客户询问了 VB.Net。我们并不是先验地反对这一点。我们意识到两种语言都支持大多数语言结构。但是,我们特别喜欢 C# 实现 lambda 表达式的方式。我们想大致了解一下与 VB.Net 的区别

编辑:接受了 CraigTP 的回答,指出了我目前认为最重要的区别。

总结一下:VB.Net 9 不支持 lambda 表达式中的多行语句,并且 lambda 必须始终返回一个值。 VB.Net 10 中解决了这两个问题

最佳答案

但是,功能 没有区别,因为 Joe Albaharithis forum post 中说:

VB.NET doesn't support multi-statement lambda expressions or anonymous methods.

请注意,这是基于 C# 3.0 和 VB.NET 9.0(即语言的 Visual Studio 2008 版本)——我不确定它是否仍然适用于 Visual Studio 2010(C# 4.0 和 VB.NET 10.0)分别)。

编辑:

根据 Richard Szaley 和我自己的评论,VB.NET 10.0(将成为 Visual Studio 2010 的一部分)确实支持多语句 lambda,这里是 MSDN Channel 9 的链接展示此功能的视频(以及许多其他功能!):

Lucian Wischik and Lisa Feigenbaum: What's new in Visual Basic 10

关于c# - c# 与 vb.net 中的 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099676/

相关文章:

c# - 在 ASP.NET 中使用 OpenID 进行 session 管理和链接用户帐户

vb.net - 传递匿名类型 VB.NET

c# - 为什么在渲染此 Razor View 时出现空引用异常?

c# - 为什么 Entity Framework (Core) 在 Add() 操作中删除旧记录?

mysql - VB 应用程序搜索 MySQL 数据库以获取登录凭据

asp.net-mvc - 未找到 View 或其主视图,但它存在

java - 使用 lambda 删除列表中的元素

java - 为什么java允许在匿名内部类中重新分配类级变量,而局部变量则不允许

Haskell:映射函数应用

c# - Linux-coreclr-rc1下使用System.Data.SqlClient