体验Visual Basic 9.0新功能
来源:互联网 发布:微信数据可以存储sd卡 编辑:程序博客网 时间:2024/04/30 15:26
前言
"Visual Basic code-named Orcas"(Visual Basic 9.0)对基于"Visual Basic code-named Whidbey"(Visual Basic 8.0)进行了一些语言方面的扩展,以统一的方式支持以数据为中心的编程--创建,更新和查询关系数据库,XML文档和对象图。与此同时,VB9.0也引进了一些新的语言特性,来加强VB对静态类型和动态类型的支持。这些新特性包括:
阅读导航
·隐式类型本地变量 ·对象和集合对象初始化 ·匿名类型 ·深层次的XML支持 ·综合查询 ·扩展方法 ·嵌套函数 ·空类型 ·非严格委托 ·动态接口 ·动态标识符
开始使用Visual Basic9.0
为了体验这些语言的强大特性,我们可以从一个真实世界的例子看起--CIA World Factbook database。这个数据库包含了世界上各个国家的各种地理的,经济的,社会的和政治信息。为了我们例子的方便,我们从定义一个国家和其首都,总面积和人口入手。我们在VB9.0中使用如下类进行编程:
Class Country
Public Property Name As String
Public Property Area As Float
Public Property Population As Integer
End Class
这是一个可以用来运行例子的国家数据库的子集:
Dim Countries =
_ { new Country{ _
.Name = "Palau", .Area = 458, .Population = 16952 },_
new Country{ _
.Name = "Monaco", .Area = 1.9, .Population = 31719 },_
new Country{ _
.Name = "Belize", .Area = 22960, .Population = 219296 },_
new Country{ _
.Name = "Madagascar", .Area = 587040, .Population = 13670507 }
_ }
从这个列表中,我们可以使用如下的查询综合查询那个国家的人口少于100万:
Dim SmallCountries = Select Country _
From Country In Countries _
Where Country.Population < 1000000
For Each Country As Country In SmallCountries
Console.WriteLine(Country.Name)
Next
因为只有马达加斯加拥有100万以上的人口,因此以上程序的结果为:
PalauMonacoBelize
让我们检查一下程序,理解一下VB9.0的特性,看看是什么使得编程如此的简单。首先,定义Conuntries变量:
Dim Countries = _
{ new County { .Name = "Palau", .Area = 458, .Population = 16952 }, _
... _
}
使用新的对象初始化语法new Country {..., .Area = 458, ...}来通过一个简洁的,基于表达式的语法创建一个复杂的对象实例,这和已有的With语句有些类似。
这个声明也使用了隐式类型的局部变量声明,编译器通过该声明中等号右边的初始化表达式来推断处本地变量Countries的类型。以上的声明和一个显式类型本地变量的类型Country()的声明的效果是一样的。
Dim Countries As Country() = {...}
重复一下,这里仍然是一个强类型声明;编译器自动推断等号右边的本地声明的类型,不需要程序员手动输入类型。
本地变量声明SmallCountries使用一个SQL风格的查询综合 来过滤掉人口小于100万的国家。它本身类似于SQL,使得熟悉SQL的程序员可以很快的熟悉和使用VB的查询语法。
Dim SmallCountries = Select Country _
From Country In Countries _
Where Country.Population < 1000000
注意我们还有一个隐式类型的应用:编译器推断SmallCountries的类型为IEnumberable(Of Country)。编译器把查询综合转变为标准的查询操作。这里,转换过程可能是如下这样简单:
Function F(Country As Country) As Boolean
Return Country.Population < 1000000
End FunctionDim
SmallCountries As IEnumerable(Of Country) = _ Countries.Where(AddressOf F)
这个扩展的表达式把编译器产生的本地函数作为一个委托Addressof F传递给表达式函数Where,Where在标准的查询操作库里定义为一个IEnumerable(of T)接口扩展。
下面我们对VB9的特性做一个深入的探究。
"Visual Basic code-named Orcas"(Visual Basic 9.0)对基于"Visual Basic code-named Whidbey"(Visual Basic 8.0)进行了一些语言方面的扩展,以统一的方式支持以数据为中心的编程--创建,更新和查询关系数据库,XML文档和对象图。与此同时,VB9.0也引进了一些新的语言特性,来加强VB对静态类型和动态类型的支持。这些新特性包括:
阅读导航
·隐式类型本地变量 ·对象和集合对象初始化 ·匿名类型 ·深层次的XML支持 ·综合查询 ·扩展方法 ·嵌套函数 ·空类型 ·非严格委托 ·动态接口 ·动态标识符
开始使用Visual Basic9.0
为了体验这些语言的强大特性,我们可以从一个真实世界的例子看起--CIA World Factbook database。这个数据库包含了世界上各个国家的各种地理的,经济的,社会的和政治信息。为了我们例子的方便,我们从定义一个国家和其首都,总面积和人口入手。我们在VB9.0中使用如下类进行编程:
Class Country
Public Property Name As String
Public Property Area As Float
Public Property Population As Integer
End Class
这是一个可以用来运行例子的国家数据库的子集:
Dim Countries =
_ { new Country{ _
.Name = "Palau", .Area = 458, .Population = 16952 },_
new Country{ _
.Name = "Monaco", .Area = 1.9, .Population = 31719 },_
new Country{ _
.Name = "Belize", .Area = 22960, .Population = 219296 },_
new Country{ _
.Name = "Madagascar", .Area = 587040, .Population = 13670507 }
_ }
从这个列表中,我们可以使用如下的查询综合查询那个国家的人口少于100万:
Dim SmallCountries = Select Country _
From Country In Countries _
Where Country.Population < 1000000
For Each Country As Country In SmallCountries
Console.WriteLine(Country.Name)
Next
因为只有马达加斯加拥有100万以上的人口,因此以上程序的结果为:
PalauMonacoBelize
让我们检查一下程序,理解一下VB9.0的特性,看看是什么使得编程如此的简单。首先,定义Conuntries变量:
Dim Countries = _
{ new County { .Name = "Palau", .Area = 458, .Population = 16952 }, _
... _
}
使用新的对象初始化语法new Country {..., .Area = 458, ...}来通过一个简洁的,基于表达式的语法创建一个复杂的对象实例,这和已有的With语句有些类似。
这个声明也使用了隐式类型的局部变量声明,编译器通过该声明中等号右边的初始化表达式来推断处本地变量Countries的类型。以上的声明和一个显式类型本地变量的类型Country()的声明的效果是一样的。
Dim Countries As Country() = {...}
重复一下,这里仍然是一个强类型声明;编译器自动推断等号右边的本地声明的类型,不需要程序员手动输入类型。
本地变量声明SmallCountries使用一个SQL风格的查询综合 来过滤掉人口小于100万的国家。它本身类似于SQL,使得熟悉SQL的程序员可以很快的熟悉和使用VB的查询语法。
Dim SmallCountries = Select Country _
From Country In Countries _
Where Country.Population < 1000000
注意我们还有一个隐式类型的应用:编译器推断SmallCountries的类型为IEnumberable(Of Country)。编译器把查询综合转变为标准的查询操作。这里,转换过程可能是如下这样简单:
Function F(Country As Country) As Boolean
Return Country.Population < 1000000
End FunctionDim
SmallCountries As IEnumerable(Of Country) = _ Countries.Where(AddressOf F)
这个扩展的表达式把编译器产生的本地函数作为一个委托Addressof F传递给表达式函数Where,Where在标准的查询操作库里定义为一个IEnumerable(of T)接口扩展。
下面我们对VB9的特性做一个深入的探究。
共7页。 1 2 3 4 5 6 7 8 :
- 体验Visual Basic 9.0新功能
- 老树新芽 体验Visual Basic 9.0新功能
- Visual Basic 2005新功能——泛型
- Visual Basic 2005新功能点评——插入代码片断
- Visual Basic 2005新功能点评——异常助手
- Visual Basic 2005新功能——My命名空间
- Visual Basic 2005新功能——My命名空间
- Visual Basic 9.0 概述
- Visual Basic 9.0 概述
- Visual Basic 9.0 概述
- Visual Studio 11开发指南(9)Visual C++ 新功能体验
- Visual Studio 11开发指南(10)Visual C++11 IDE 新功能体验
- 新的Visual Basic 9.0
- Visual Basic 2005新功能点评(十五)——My命名空间之My.Computer
- Visual Basic 2005新功能点评——My命名空间之My.Application
- Visual Basic 2005新功能点评——My命名空间之My.Computer
- Visual Basic 2005新功能点评——My命名空间之My.Resources和My.User
- Visual Basic 2005新功能点评(十八)——My命名空间之高级用法(转帖)
- 和协的一天
- 给年轻工程师的十大忠告
- 在线查询大全
- 最近需要读的书
- MySQL查询优化技术讲座
- 体验Visual Basic 9.0新功能
- UNIX 作业系统操作简介
- 请看看这个组合算法哪里出了错?
- MySQL索引分析和优化
- 有关人员职衔规范译法(英语)(文摘)
- MSDN 体系结构为Windows应用创建简单的异步调用模式(文摘)
- 如何在weblogic中将hibernate的SessionFactory配置为JNDI
- 实现让一个控件跟着鼠标一起移动? vb.net
- 篮球飞人