从功能上讲,C#和VB.Net中的lambda表达式之间是否存在差异(除了语法之外)?
编辑:跟进CraigTP的回答:任何对.Net 4情况的引用?
编辑:我问,因为我习惯了C#,但是对于下一个项目,客户要求VB.Net.我们不是先验者.我们意识到大多数语言结构都支持两种语言.但是,我们特别喜欢C#实现lambda表达式的方式.我们希望概述与VB.Net的差异
编辑:接受CraigTP的答案,指出我目前认为最重要的区别.
总结一下:VB.Net 9不支持lambda表达式中的多行语句,而lambda必须始终返回一个值.这两个问题都在VB.Net 10中得到解决
Cra*_*gTP 13
然而,正如Joe Albahari在这篇论坛帖子中所说的那样,没有任何功能差异:
VB.NET不支持多语句lambda表达式或匿名方法.
请注意,这是基于C#3.0和VB.NET 9.0(即Visual Studio 2008版本的语言) - 我不确定它是否仍适用于Visual Studio 2010(分别为C#4.0和VB.NET 10.0).
编辑:
按照理查德Szaley和我本人的意见,VB.NET 10.0(这将是Visual Studio 2010中的一部分)DOES支持多lambda表达式,这里是一个MSDN Channel 9的视频的链接,显示了此功能(许多沿其他!):
Lucian Wischik和Lisa Feigenbaum:Visual Basic 10中的新功能
VB.NET(2010年之前)中的Lambda表达式必须返回一个值.例如,以下语法在VB.NET 9中无效,但在VB.NET 10中有效(来自Mike McIntyre博客的代码):
Array.ForEach(numbers, Sub(n)
Console.Write("Number: ")
Console.WriteLine(n)
End Sub)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4197 次 |
最近记录: |