改进 VB 的 Lambda 表达式

阅读数:217 2008 年 8 月 4 日

话题:.NET函数式编程语言 & 开发架构

匿名函数哪一点最令 VB 开发者感到挫折还真不好说。排名不分先后:

没有办法创建匿名子程序(subroutine),也就是不能返回值的函数。这意味着 VB 开发者无法直接使用任何要求 Action(Of T) 的方法,比如 IEnumerable.ForEach。

下一个是缺乏多行匿名函数。现在这个问题还只是令人不舒服,但在不久的将来会成为决定性的缺陷。使用 Parallel FX 库所需的若干编码模式,包括很有前途的 Parallel.For 循环,全都要求使用多行匿名函数。

最后是语法。当你不得不在一行里写好几个匿名函数的时候,那语法简直是笨拙到家了。

前两个问题已经有了解决方案。虽然 Paul Vick 不能打保票,但下一版 VB 几乎肯定会支持匿名子程序和多行匿名函数

至于语法,谁也说不准。C# 从 2.0 进化到 3.0 的时候就改过语法,所以如果 VB 采取同样的做法也不是没道理。只不过现在还没有显而易见的候选语法,而且 VB 传统上会通过 IDE 的增强来解决这类问题。

查看英文原文:Lambda Expression Improvements for VB