VS2010与.NET4系列 18.VB2010的自动属性、集合初始化器和隐式行延续支持

来源:互联网 发布:淘宝买家当天数据出售 编辑:程序博客网 时间:2024/06/05 19:07

今天介绍 VB 2010 新增加的几个特性:自动实现的属性,集合初始化器,和隐式行延续支持。

自动实现的属性

在VB2010之前,使用VB在类中实现属性需要声明属性并实现存储属性值的字段变量。

例如,下面的代码演示了如何使用VB2008实现一个 "Person" 类,该类暴露了两个公共属性——"Name" 和 "Age":

image

尽管像上面这样显式地声明属性可以提供最大的灵活性,但在编写仅仅从字段存储/获取值而编写这样的代码比较沉闷。可以使用VS提供的代码片断来帮助自动化生成代码,但这仍然要产生许多冗余的代码。C#2008引入了叫做自动化属性的新特性,可以帮助减少代码。VB2010现在也支持这样的特性了。

使用VB2010自动实现属性特性,现在可以使用下面的代码实现 Person 类了:

image

声明了自动实现属性后,VB编译器会自动创建私有字段来存储属性值,并产生关联的Get/Set方法。正如你看到的,代码更加简洁更易于阅读。

语法还可选地支持使用默认值初始化属性:

image

关于VB2010的自动属性支持,见 MSDN 页面。

集合初始化器

VB2010现在还支持使用集合初始化器来容易地创建集合并使用一组初始值填充它。通过声明一个集合变量,然后使用 From 关键字,其后跟着花括号 {} ,其中包含初始值列表,可以实现一个集合初始化器。

下面是一个代码示例,使用了新的集合初始化器特性来填充一个 "Friends" 列表,其中包含两个 Person 对象,并把它绑定到 GridView 控件上使其能显示在页面上:

image

关于VB2010集合初始化器的更多信息,见 MSDN 页面。

隐式行延续支持

传统上,当VB语句被多行分离的时候,必须要使用行延续的下划线符号(_),它表示语句还没完成。

例如,使用下面的VB2008语句,LINQ查询需要在每行的末尾追加一个 "_" 来表示查询还没有完成:

image

VB2010编译器和代码编辑器现在添加了对叫做“隐式行延续支持”的支持,这意味着对于自动检测行延续场景更加智能了,这就不再需要显式地表示语句的延续了。现在上面的代码不再需要 "_" 了:

image

隐式行延续特性也可以在编辑XML字面时良好地工作了(非常棒)。

可以从 MSDN 页面学习关于VB2010的隐式行延续支持和许多它支持的场景。

总结

上面三个VB语言特性只是VB2010的一小部分新的语言和代码编辑器特性。访问这个站点可以学习更多其他的VB语言特性。

另外订阅 VB 团队博客 也可以学习更多且最新的日志。

原创粉丝点击