VisualBasic9.0隱式類型的局部變量

字號:

在隱式類型的局部變量聲明中,局部變量的類型是通過局部聲明語句右側(cè)的初始值設(shè)定項表達(dá)式推斷的。
    例如,編譯器推斷以下所有變量聲明的類型:
    以下是引用片段:
    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 On(新項目的默認(rèn)值)推斷的,因此不管 Option Strict 的設(shè)置如何,對此類變量的訪問始終是早期綁定的。程序員必須在 Visual Basic 9.0 中顯式指定后期綁定,方法是將變量顯式聲明為 Object 類型,如下所示:
    以下是引用片段:
    Dim country As Object = New Country With { .Name = "Palau", ... }
    推斷類型可防止意外使用后期綁定,更重要的是,它允許為新數(shù)據(jù)類型(如 XML)綁定強(qiáng)大擴(kuò)展,如下所示。
    For...Next 或 For Each...Next 語句中的循環(huán)控制變量也可以是隱式類型的變量。指定循環(huán)控制變量時(如 For I = 0 To SmallCountries.Count 或 For Each country In smallCountries 中所示),標(biāo)識符定義一個新的隱式類型局部變量,其類型通過初始值設(shè)定項或集合表達(dá)式推斷且作用于整個循環(huán)。通過應(yīng)用此類型推斷,可以重新編寫打印所有小國家/地區(qū)的循環(huán),如下所示:
    以下是引用片段:
    For Each country In smallCountries
    Console.WriteLine(country.Name)
    Next
    country 的類型被推斷為 Country,即 SmallCountries 的元素類型。