体验隐式类型本地变量

在一个隐式类型本地变量的声明中,本地变量的类型是从等号右边的本地声明语句的初始化表达式中推断出来的。举例来说,编译器推断如下的变量声明:

Dim Population = 31719
Dim Name = "Belize"
Dim Area = 1.9
Dim Country = New Country{ .Name = "Palau", ...}

  因此它们等同于如下的显式类型声明:

Dim Population As Integer = 31719
Dim Name As String = "Belize"
Dim Area As Float = 1.9
Dim Country As Country = New Country{ .Name = "Palau", ...}

  因为本地变量声明的类型缺省是通过推断的,所以怎样设置选项 Strict都没有关系,对这些变量的访问通常都是前期绑定的。在VB9.0里程序员必须显式指定后期办定,即显示声明变量类型为Object,如下:

Dim Country As bject = new Country{ .Name = "Palau", ... }

  要求显式的后期绑定阻止了非正常使用后期绑定,更重要的是允许对新的数据类型比如XML使用后期绑定的强大表达功能,如下面要看到的一样。这里将会有一个可选的工程级的对当前行为的切换。

  在一个For...Next或者For Each...Next中的循环控制变量也可以是一个隐式类型变量,当循环控制变量被指定的时候,如For Dim I = 0 To Count或者For Each Dim C In SmallCountries,标识符定义了一个新的隐式类型本地变量,它的类型类型是通过初始化或者集合对象表达推断的,并且受限于整个循环内。在For的右边使用Dim是VB9的一个新特性,也是作为隐式类型的循环变量存在的。

  通过这样的类型推断方法,我们可以重写打印所有小国家的循环:

For Each Dim Country In SmallCountries
 Console.WriteLine(Country.Name)
Next

  Country的类型被推断为Country,也即SmallCountries的元素类型。
请使用浏览器的分享功能分享到微信等