Visual Basic 中的变量声明
声明一个变量来指定其名称和特征。 变量的声明语句是 Dim 语句。 其位置和内容确定变量的特征。
有关变量命名规则和注意事项,请参阅已声明的元素名称。
声明级别
局部变量和成员变量
局部变量是在过程中声明的变量。 成员变量是 Visual Basic 类型的成员,在模块级别声明,在类、结构或模块中声明,但不在该类、结构或模块内部的任何过程中声明。
共享变量和实例变量
在类或结构中,成员变量的类别取决于它是否是共享的。 如果它是用“共享”关键字声明的,则它是一个共享变量,并且它存在于类或结构的所有实例之间共享的单个副本中。
否则它是一个实例变量,会为类或结构的每个实例创建一个它的单独副本。 实例变量的给定副本仅可用于其创建所在的类或结构的实例。 它与该类或结构的任何其他实例中的实例变量副本无关。
声明数据类型
声明语句中的 As 子句支持定义要声明的变量的数据类型或对象类型。 可以为变量指定以下任意类型:
基本数据类型,如
Boolean
、Long
或Decimal
复合数据类型,如数组或结构
在应用程序或其他应用程序中定义的对象类型或类
接口类型,如 IComparable 或 IDisposable
可以在一个语句中声明多个变量,而不必重复该数据类型。 在以下语句中,变量 i
、j
和 k
声明为类型 Integer
、l
和 m
声明为 Long
,而 x
和 y
声明为 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
子句的情况下声明的局部变量的数据类型。 编译器将从初始化表达式的类型推理该变量的类型。 这样,便可以在不显式声明类型的情况下声明变量。 在下面的示例中,num1
和 num2
均强类型化为整数。
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
语句中包含 Static
或 Shared
关键字。 有关详细信息,请参阅 Visual Basic 中的生存期。
变量的作用域是指可以引用变量的所有代码的集合,且无名称限定。 变量的作用域由其声明时的位置确定。 位于给定区域的代码可以使用该区域中定义的变量,而不必限定其名称。 有关详细信息,请参阅 Scope in Visual Basic。
变量的访问级别是有权访问变量的代码的范围。 这由 Dim
语句中使用的访问修饰符(例如公用或专用)决定。 有关详细信息,请参阅 Visual Basic 中的访问级别。