Lambda表达式无法按预期使用

时间:2011-12-23 20:09:50

标签: vb.net lambda

以下代码生成编译器错误“Expression expected”(Sub带下划线)。

Dim lambda As Action(Of Integer) = Sub(x) Console.WriteLine(x)

为什么这不起作用?

注意:相应的C#代码有效:

Action<int> lambda = x => Console.WriteLine(x);

1 个答案:

答案 0 :(得分:3)

我猜你正在使用Visual Studio 2008.VB.NET中的动作lambdas(Sub keyword)have been added in VB 10,它随Visual Studio 2010一起提供。对于多行lambda来说也是如此,顺便说一句。

请注意,这不是框架问题,而是编译器问题:只要您使用VS 2010编译器,即使在.NET 3.5项目中也可以使用action lambdas。

C#在VB之前有动作lambdas,这就是为什么C#示例即使在VS 2008中也能正常工作。