0
以下代码会产生编译器错误“预期表达式”(Sub带下划线)。无法按预期使用Lamba表达式
Dim lambda As Action(Of Integer) = Sub(x) Console.WriteLine(x)
为什么这不起作用?
注:相应的C#代码的工作:
Action<int> lambda = x => Console.WriteLine(x);
以下代码会产生编译器错误“预期表达式”(Sub带下划线)。无法按预期使用Lamba表达式
Dim lambda As Action(Of Integer) = Sub(x) Console.WriteLine(x)
为什么这不起作用?
注:相应的C#代码的工作:
Action<int> lambda = x => Console.WriteLine(x);
我猜你使用Visual Studio 2008的动作lambda表达式在VB.NET(Sub
关键字)have been added in VB 10,它附带的Visual Studio 2010年同期顺便说一句,对于多线lambda来说也是如此。
请注意,这不是一个框架问题,而是一个编译器问题:只要您使用VS 2010编译器,即使在.NET 3.5项目中也可以使用动作lambdas。
C#在VB之前有动作lambdas,这就是为什么C#示例在VS 2008中仍然可以工作。
这解释了一切。谢谢! – 2011-12-23 20:17:16
有没有办法在VB.net 3.5中做类似的事情呢? – 2014-06-02 14:09:51
@SimonDugré:当然,它在VB.net 3.5中工作得很好!你只需要使用VS 2010或更高版本。 – Heinzi 2014-06-02 14:37:14