VisualBasic9.0前沿播报·静态篇(二)对象初始化器和匿名类型
作者:ninputer 出处:博客园
在visual Basic 2005以前的版本,如果类或结构没有定义初始化构造函数,我们就必须用属性逐一赋值的方式。比如
这样,对象的初始化不能与对象的定义同时完成,多少有些不便。特别是我们在表达式中需要person类型的时候,无法就地生成,必须另写代码初始化,这会打断我们的思路。visual Basic 9.0为所有对象提供了一个表达式初始化语法,让你可以对任何公有属性在初始化时一并赋值。(其实我早就想要这个语法了,呵呵)
看这个语法比以前简洁多了,就好像把with语句写在了初始化语句里一样。初始化语法并没有取代构造函数,而且它还可以和构造函数任何混合使用。比如假设person类型有一个初始化name的构造函数,你便可以这样写。
也就是说,初始化器并非要求对所有属性进行初始化。对系统里的list(of T)类型,VB9还专门实现了List初始化语法:
这种特性着实给我们编写代码带来了很大的方便,也让“表达式”所能表达的内容大大丰富了。“一句话编程”正在慢慢引入vb,呵呵。
最后我们介绍一下匿名类型。当你恰好需要一个结构变量有a As String, B As Integer两个成员,但事先没有定义。在VB2005中,你只能去定义它,而在VB9中,你可以将它当作一个Tuple:
这一句,vb会为你创造出一个类型,就有两个字段a和b,分别是string和integer类型,而item就直接成为“那个类型”的实例。匿名类型如前所述,最主要的用途是当成tuple,可以用来保存查询的临时结果。这时候,局部变量类型推测的好处就体现出来了。注意,按照目前的设计,这一切过程都是在编译时完成的,匿名类型会变成实际类型保存在你的项目中,因此这一操作代价较大。所以visual Basic组可能还在讨论使用CLR新特性做动态Tuple,让我们继续期待吧。
进入讨论组讨论。·用VisualC#动态生成组件
·Visual Basic .NET 中动态加载类
·用VisualC#.NET编写服务器日期控件
- 最新文章
- VisualBasic9.0前沿播报·静态篇(一)局部变量..[05-23]
- VisualBasic9.0前沿播报·动态..[05-23]
- VisualBasic.NET中组件的叠加使用[05-23]
- VB2005的重构支持之创建方法重载[05-23]
- 关于Visual Basic 9.0的动态标识符[05-23]
- vb.net中应用 ArrayList实例[05-23]
- 相关文章
- VisualBasic9.0前沿播报·静态篇(一)局部变量..[05-23]
- VisualBasic9.0前沿播报·动态..[05-23]
- VisualBasic.NET中组件的叠加使用[05-23]
- VisualBasic.NET带来的新方法(一)[05-23]
- 从VisualBasic6.0到VisualBasic.NE..[05-23]
- 使用VisualBasic.NET访问注册表[05-23]
