C# · 12月 31, 2021

c#vs 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中解决

解决方法@H_301_13@ 但是,Joe Albahari在 this 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的一部分)支持多语句lambdas,这里是一个链接到MSDN频道9视频,显示了这个功能(以及许多其他!):

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