我之前在VB Windows窗体项目中构建了一小段基于lambda的代码,它完美地工作,但是它给了我“表达预期”警告(阻止编译......应该被认为是错误,不是吗?)当我将代码复制到ASP.NET项目。我能看到的唯一区别是,如果我创建一个Windows表单项目而不是一个Web项目...在一个工作,在另一个工作。
即使像这样基本的东西也行不通:
delegate function stringify(byval x as object) as string
public sub test()
dim f as stringify = Function(x) x.ToString()
dim s as string = f(5)
end sub
有没有办法让Lambdas在ASP.NET中工作?或者有一个设置在某个地方将我的VB版本缩小了一两级(因为它们显然只能在9.0或更高版本中工作,但我不知道如何判断我正在使用哪个版本)?
编辑:呸! LinqBridge似乎不适合我。我得到了对象(Func(Of TResult)),但没有lambda支持。我想这是我的希望的丧钟?或者是否有一些显而易见的东西我不想使用它(拖到bin,在引用中定位,Imports System.Linq)?
答案 0 :(得分:1)
如果您使用LinqBridge
,则可以它是.q 2.0的Linq实现
正如他们所说
LINQBridge是Framework 3.5的Enumerable类中所有标准查询运算符的重新实现。
...
实际上,LINQBridge允许您使用C#3.0中几乎所有使用Framework 2.0的功能,包括扩展方法, lambda函数和查询理解。它不支持的唯一功能是将lambdas编译为表达式树(即Expression)。