随着 VB 9 发布日期的日益临近,微软公司必须要忍痛对其中各个未能按时完成的新特性进行取舍。虽然大多数重要的特性都已被保留,不过也有一些例外。 Paul Vic 对此进行了归纳总结 。
C#中的友元程序集(friend assembly)和非严格委托(relaxed delegate)概念都保留了下来,不过 curry 委托则被推迟到下一个版本中。
运行时敏捷(Runtime Agility),即无需 VB 运行时即可进行编译的功能也将得到支持。若想将 VB 代码迁移到其它平台(例如 XBox 360 或.NET Micro Edition)上,那么这个特性将显得至关重要。
我们所了解的大多数有用的 LINQ 功能都将在语言中得到支持,不过一些支持性的功能将不得不被舍去。这些被舍去的功能包括集合初始化器(collection initializer)以及初始化只读域机制等。还有一个限制——虽然 lambda 表达式将得到支持,不过对 lambda 表达式中声明语句的支持却无法包含在这个版本中。之所以会做出这样的决定,可能是因为 VB 中并没有类似 C#中的强制区块结构(arbitrary block structure)。
XML 常量(XML Literals)、成员、命名空间以及 LINQ 都是 VB 9 皇冠上的明珠,它们也均将毫无疑问地得到支持。自从延迟绑定(late binding)之后,这些与 XML 深度集成的特性又一次成为 VB 的亮点,让其能够真正与 C#进行抗衡。
评论