visualbasic:Visual Basic 9.0 概述

  介绍  Visual Basic 直以生成实用、面向数据业务线应用为中心尽管迁移到 .NET 为应用开发人员带来了统框架和托管平台但是下版本 Visual Basic 包括组对开发人员构建面向数据应用工作效率影响深远功能这些语言扩展引入了适用于所有数据源通用查询工具不管是关系对象图、分层对象图还是 XML 文档

  本文档将简略介绍这些新增功能

Visual Basic 9.0 入门  要查看这些语言功能实际作用让我们首先看个真实举例 - CIA World Factbook 数据库该数据库包含有关世界各国各种地理、经济、社会和政治信息为了演示举例我们从每个国家/地区名称及其首都/首府、总面积和总人口架构开始通过使用以下类(为简便起见使用伪代码)在 Visual Basic 9.0 中表示此架构:

Class Country
 Public Property Name As String
 Public Property Area As Long
 Public Property Population As Integer
End Class
  下面是个将用作运行举例国家/地区数据库小子集:

Dim countries = {
 New Country With { .Name = "Palau", .Area = 458, .Population = 16952 }, _
 New Country With { .Name = "Monaco", .Area = 1.9, .Population = 31719 }, _
 New Country With { .Name = "Belize", .Area = 22960, .Population = 219296 }, _
 New Country With { .Name = "Madagascar", .Area = 587040, .Population =
13670507}}
  有了此列表可以使用以下查询表达式来查询其人口少于百万所有国家/地区:

Dim smallCountries = From country In countries _
           Where country.Population < 1000000 _
Select country
For Each country In SmallCountries
 Console.WriteLine(country.Name)
Next
  由于只有马达加斯加居住人口超过百万因此在编译和运行后上述将打印出下列国家/地区名称:

Palau
Monaco
Belize
  让我们检查下该了解使得编写此如此简单 Visual Basic 9.0 功能首先表示 Countries 每个表达式声明都使用新增“对象值设定项”语法 New Country With {..., .Area = 458, ...}通过类似于现在 With 语句、基于表达式简明语法创建复杂对象例子

  该声明还介绍说明了“隐式类型局部变量”声明其中编译器通过声明右侧值设定项表达式来推断局部变量 Countries 类型上述声明完全等效于 Country 类型显式类型局部变量声明

Dim countries As Country = {...}  重申这仍然是强类型声明;编译器已自动推断局部声明右侧类型员无需在中手动输入该类型

  使用 SQL 样式查询表达式化局部变量声明 SmallCountries筛选出居住人口少于百万所有国家/地区查询表达式和 SQL 类似是有意这样已经了解 SQL 员就可以更快地了解 Visual Basic 查询语法

Dim smallCountries = From country In Countries _
           Where country.Population < 1000000 _
  Select country
  请注意此代码举例表示另个隐式类型应用:编译器根据查询表达式结果类型将 SmallCountries 类型推断为 IEnumerable(Of Country)编译器将查询表达式本身转换为对启用 LINQ API(它为实现 IEnumerable(Of T) 所有类型实现查询运算符)在这种情况下转换就像下面样简单:

Dim smallCountries As IEnumerable(Of Country) = _
  Countries.Where(Function(country) country.Population < 1000000). _
       Select(Function(country) country)
  扩展语法取决于“lambda 表达式”后者表示返回表达式结果内联lambda 表达式被转换为委托并传递到扩展 Where在标准查询运算符库中被定义为 IEnumerable(Of T) 接口扩展

  我们已了解 Visual Basic 9.0 几项新增功能接下来让我们深入了解更多内容

隐式类型局部变量  在隐式类型局部变量声明中局部变量类型是通过局部声明语句右侧值设定项表达式推断例如编译器推断以下所有变量声明类型:

Dim population = 31719
Dim name = "Belize"
Dim area = 1.9
Dim country = New Country With { .Name = "Palau", ...}
  因此它们完全等效于以下显式类型声明:

Dim population As Integer = 31719
Dim name As String = "Belize"
Dim area As Float = 1.9
Dim country As Country = New Country With { .Name = "Palau", ...}
  由于局部变量声明类型是通过新增 Option Infer _disibledevent= AddressOf RelaxedOnClick
Dim G As New EventHandler(AddressOf btn.Click)

结论  Visual Basic 9.0 统了对数据访问不管数据源自关系数据库、XML 文档还是任意对象图也不管以什么方式保持或者存储在内存中该统包括样式、思路方法、工具和编程模式Visual Basic 语法极其灵活可以轻松地将类似 XML 文字扩展和类似 SQL 查询表达式添加到该语言深处这大大减少了新 .NET 语言集成查询 API “外围”通过 IntelliSense 和智能标记提高了数据访问功能可发现性并通过将外部语法从串数据中提取到 Visual Basic 中从而大大改进了调试和编译时检查功能

  此外诸如类型推断、对象值设定项和宽松委托的类功能大大减少了代码冗余以及员需要学习和记忆或查找规则异常数目而且不会对性能产生任何影响

  虽然可能看起来 Visual Basic 9.0 中新增功能很多但是我们希望上述主题将使您确信它是、及时并致力于使 Visual Basic 成为世界上最好编程语言我们希望它也能激发您创造力并希望您也相信使用 Visual Basic 将有更加美妙体验

Tags:  visualbasic2008 visualbasic.net visualbasic6.0 visualbasic

延伸阅读

最新评论

发表评论