在功能上,C#和VB.Net中的lambda表达式之间有什么区别(除了语法之外)吗?
编辑:跟随CraigTP的答案:任何提到.Net 4中的情况?
编辑:我问我是因为习惯了C#,但下一个项目的客户问VB.Net.我们不是对此的先验.我们意识到,这两种语言都支持大多数语言结构.但是,我们特别喜欢C#实现lambda表达式.我们想概述一下VB.Net的区别
编辑:接受CraigTP的答案,指出我目前认为最重要的区别.
所以总结一下:VB.Net 9不支持lambda表达式中的多行语句,而lambda必须始终返回一个值.这两个问题都在VB.Net 10中解决
解决方法
但是,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