Visual Basic 中的变量声明

声明一个变量来指定其名称和特征。 变量的声明语句是 Dim 语句。 其位置和内容确定变量的特征。

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

声明级别

局部变量和成员变量

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

共享变量和实例变量

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

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

声明数据类型

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

  • 基本数据类型,如 BooleanLongDecimal

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

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

  • .NET Framework 类,如 LabelTextBox

  • 接口类型,如 IComparableIDisposable

可以在一个语句中声明多个变量,而不必重复该数据类型。 在以下语句中,变量 ijk 声明为类型 Integerlm 声明为 Long,而 xy 声明为 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.  

有关数据类型的详细信息,请参阅数据类型。 有关对象的详细信息,请参阅对象和类组件编程

局部类型推理

类型推理用于确定在不使用 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 语句

声明的变量的特征

变量的生存期是指变量可供使用的时间。 通常,只要声明变量的元素(如过程或类)持续存在,变量就存在。 如果变量的存在无需超出包含其的元素的生存期,则无需在声明中执行任何特殊操作。 如果变量在包含其的元素的生存期完结后还需要继续存在,可以在其 Dim 语句中包含 StaticShared 关键字。 有关详细信息,请参阅 Visual Basic 中的生存期

变量的作用域是指可以引用变量的所有代码的集合,且无名称限定。 变量的作用域由其声明时的位置确定。 位于给定区域的代码可以使用该区域中定义的变量,而不必限定其名称。 有关详细信息,请参阅 Scope in Visual Basic

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

另请参阅