【问题标题】:Can I use lambdas in a VB ASP.NET (2.0) project in VS 2008?我可以在 VS 2008 的 VB ASP.NET (2.0) 项目中使用 lambdas 吗?
【发布时间】:2010-08-13 19:22:17
【问题描述】:

我早些时候在一个 VB Windows 窗体项目中构建了一小段基于 lambdas 的代码,它运行良好,但它给了我“预期表达式”警告(哪个块编译......应该被认为是错误,不是吗?)当我将代码复制到 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

有没有办法让 Lambda 在 ASP.NET 中工作?或者是否有某个设置将我的 VB 版本降低了一两个级别(因为它们显然只在 9.0 或更高版本中工作,但我不知道如何判断我使用的是哪个版本)?

编辑:呸! LinqBridge 似乎对我不起作用。我得到了对象(Func(Of TResult)),但没有 lambda 支持。我想这就是我希望的丧钟?还是有什么明显的我缺少使用它(拖动到 bin,引用中的目标,Imports System.Linq)?

【问题讨论】:

    标签: asp.net vb.net visual-studio-2008 lambda


    【解决方案1】:

    如果你使用LinqBridge你可以

    它是 .Net 2.0 的 Linq 实现

    正如他们所说的

    LINQBridge 是 Framework 3.5 的 Enumerable 类中所有标准查询运算符的重新实现。
    ...
    事实上,LINQBridge 让您可以将 C# 3.0 中的几乎所有功能与 Framework 2.0 一起使用,包括扩展方法、lambda 函数和查询理解。它不支持的唯一功能是将 lambdas 编译为表达式树(即表达式)。

    【讨论】:

    • 太棒了。我无法选择是否可以使用它,但很高兴知道这一点。知道为什么 ASP 甚至落后于 VB 吗?虽然我承认我对 .NET 很陌生,但这似乎是一种奇怪的脱节。 (如果没有人想出更好的方法,我会很乐意选择你的答案,我只是想知道是否有其他方法,最好是更像“选中此框”)
    • 是的,您可以在 ASP.NET 中使用它,但您应该知道它仅涵盖 LinqToObjects。这意味着它不能替代 LinqToSQL。但是你要了 lambdas。查询 IEnumerable 对象 时可以使用 lambda
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2013-08-07
    相关资源
    最近更新 更多