变量是指在程序运行时其值可以被改变的量,用来保存程序中的临时数据。与常量相同,变量在计算机内部也是对应于一定的内存单元。对数据的操作通过变量名来进行。在Visual Basic 6.0 中,变量可以分为 4 类:普通局部变量、静态局部变量、模块级变量和公用变量。本节就这 4 种变量的声明和使用分别予以介绍。
普通局部变量是只能在定义的函数或者过程中访问的变量。普通局部变量在所需要使用的函数或过程中声明,其生存周期从函数或过程调用开始到函数或过程结束终止。声明普通局部变量的语法:
Dim<变量名>[As<常数的数据类型>]
参数说明如下所示。
●Dim:变量定义关键字。
●变量名:指定该变量的名称。
●变量表达式:变量定义的数值、字符串等常数。
以下代码演示了部分普通局部变量的声明示例。
注意
在进行变量声明时将整数型变量初始化为 0,字符串变量初始化为空。
静态局部变量是比较特殊的一种局部变量。与普通局部变量相比,普通局部变量生存周期从函数或过程调用开始到函数或过程结束终止,而静态局部变量在每次调用后不会被释放,即静态局部变量的生存周期为整个程序运行期间。这个特点非常有用,常常用来计算程序中某个事件发生的次数。声明普通局部变量的语法:
Static<变量名>[As<常数的数据类型>]
参数Static表示静态局部变量定义关键字。以下部分是静态局部变量的声明示例。
01 '定义字符串型静态局部变量
02 Static strName As String
03 '定义整数型静态局部变量
04 Static nCount As Integer
注意
读者必须将静态局部变量和普通局部变量的生存周期区分清楚。静态局部变量的生存周期为整个程序运行期间,而普通局部变量生存周期从函数或过程调用开始到函数或过程结束终止。
【范例 2-4】 如示例代码 2-4 所示,代码中定义了普通局部变量和静态局部变量,可以很清楚地说明普通局部变量和静态局部变量生存周期的不同。
示例代码 2-4
【运行结果】当用鼠标单击“计数”按钮时,分别用普通局部变量和静态局部变量计数。运行程序,单击“计数”按钮 11次后,可以看到普通局部变量的计数值为 1 次,而静态局部变量计数值为 11 次。程序将“计数”按钮的单击次数记录下来,如图2.8 所示。
图 2.8 静态局部变量的引用
【代码解析】通过以上的程序可以看到,每单击一次“计数”按钮,普通局部变量count1 都重新赋一次初值 0。经过加一运算后,count1 的值为 1,在单击按钮这个过程结束后count1 被释放。当下一次单击“计数”按钮时,重复这一过程,所以count1 显示的值一直为 1。而静态局部变量count2 在每次单击后数值都会被保留,所以当单击“计数”按钮 11 次后,count2 的值经过了 11 次加一运算为 11。从而实现了按钮单击的计数功能。
模块级变量是只能被所在模块中的过程访问的变量。其作用范围在模块内部,不能被其他模块访问。如果有同名的公用变量同时存在,所访问的变量是该模块的模块级变量。声明模块级变量的语法:
Private /Dim<变量名>[As<常数的数据类型>]
参数说明如下所示。
●Private/Dim:声明该变量只能在该声明的模块中使用。建议用Private来声明模块级变量。
●变量名:指定该变量的名称。
以下代码是模块级变量的声明示例。
提示
对于一些经常用到的通用变量,可以定义为模块级变量,但不能随意地将变量定义为模块级变量。大量的模块级变量会导致计算机资源的浪费。
公用变量可以在程序所有过程和函数中使用。公用变量通常在标准模块的通用声明部分中使用Public关键字来声明。声明公用变量的语法:
Public <变量名>[As<常数的数据类型>]
参数说明如下所示。
●Public:声明该变量为公用变量。
●变量名:指定该变量的名称。
●As<常数的数据类型>:指定变量声明的数据类型。
以下是公用变量的声明示例。代码如下所示。
提示
公用变量可以在程序中标识一定的条件关系。例如,在数据库编程中常常会定义一个逻辑型公用变量来标识用户的登录情况,通过该变量来判断当前用户是否已经登录。