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#进行抗衡。
查看英文原文:VB 9 Features – What Made the Cut