匿名函数哪一点最令 VB 开发者感到挫折还真不好说。排名不分先后:
没有办法创建匿名子程序(subroutine),也就是不能返回值的函数。这意味着 VB 开发者无法直接使用任何要求 Action(Of T) 的方法,比如 IEnumerable.ForEach。
下一个是缺乏多行匿名函数。现在这个问题还只是令人不舒服,但在不久的将来会成为决定性的缺陷。使用 Parallel FX 库所需的若干编码模式,包括很有前途的 Parallel.For 循环,全都要求使用多行匿名函数。
最后是语法。当你不得不在一行里写好几个匿名函数的时候,那语法简直是笨拙到家了。
前两个问题已经有了解决方案。虽然 Paul Vick 不能打保票,但下一版 VB 几乎肯定会支持匿名子程序和多行匿名函数。
至于语法,谁也说不准。C#从2.0 进化到3.0 的时候就改过语法,所以如果VB 采取同样的做法也不是没道理。只不过现在还没有显而易见的候选语法,而且VB 传统上会通过IDE 的增强来解决这类问题。




