Visual Basic 中的变量声明

声明变量以指定其名称和特征。 变量的声明语句是 Dim 语句。 其位置和内容决定了变量的特征。

有关变量命名规则和注意事项,请参阅 声明的元素名称

声明级别

局部变量和成员变量

局部变量是在过程中声明的变量。 成员变量是 Visual Basic 类型的成员;它在模块级别、类、结构或模块内声明,但不是在该类、结构或模块内部的任何过程中声明的。

共享变量和实例变量

在类或结构中,成员变量的类别取决于它是否共享。 如果它是使用 Shared 关键字声明的,则它是 一个共享变量,并且它存在于类或结构的所有实例之间共享的单个副本中。

否则,它是一个 实例变量,并为类或结构的每个实例创建一个单独的副本。 实例变量的给定副本仅适用于在其中创建实例的类或结构的实例。 它与类或结构中其他实例的实例变量副本无关。

声明数据类型

声明语句中的 As 子句允许定义要声明的变量的数据类型或对象类型。 可以为变量指定以下任一类型:

  • 基本数据类型,例如 BooleanLongDecimal

  • 复合数据类型,如数组或结构

  • 在应用程序或其他应用程序中定义的对象类型或类

  • .NET Framework 类,例如 LabelTextBox

  • 接口类型,例如 IComparableIDisposable

可以在一个语句中声明多个变量,而无需重复数据类型。 在以下语句中,变量ijk声明为类型Integerlm声明为Longxy声明为Single

Dim i, j, k As Integer  
' All three variables in the preceding statement are declared as Integer.  
Dim l, m As Long, x, y As Single  
' In the preceding statement, l and m are Long, x and y are Single.  

有关数据类型的详细信息,请参阅 数据类型。 有关对象的详细信息,请参阅 Objects 和 Classes and Programming with Components

局部类型推理

类型推理 用于确定在没有子句的情况下 As 声明的局部变量的数据类型。 编译器从初始化表达式的类型推断变量的类型。 这使你可以声明变量,而无需显式声明类型。 在以下示例中,num1num2都被指定为整数类型。

Public Sub inferenceExample()

    ' Using explicit typing.
    Dim num1 As Integer = 3

    ' Using local type inference.
    Dim num2 = 3

End Sub

如果要使用本地类型推理, Option Infer 则必须设置为 On。 有关详细信息,请参阅 本地类型推理Option Infer 语句

声明变量的特征

变量的 生存期 是可供使用的时间段。 一般情况下,只要声明变量的元素(如过程或类)继续存在,变量就存在。 如果变量不需要在包含元素的生存期内继续存在,则无需在声明中进行任何特殊处理。 如果变量需要继续存在的时间长于其包含元素,则可以在其Static语句中包含SharedDim关键字。 有关详细信息,请参阅 Visual Basic 中的生命周期

变量 的范围 是可以引用它的所有代码集,而无需限定其名称。 变量的范围由声明的位置确定。 位于给定区域中的代码可以使用该区域中定义的变量,而无需限定其名称。 有关详细信息,请参阅 Visual Basic 中的范围

变量 的访问级别 是有权访问它的代码范围。 这由在语句中使用的访问修饰符(如公共Dim)确定。 有关详细信息,请参阅 Visual Basic 中的 Access 级别

另请参阅