vb中怎么定义java_变量的声明和作用域——VB

变量的作用域指的是变量的有效范围。为了能正确地使用变量的值,应当明确可以在程序的什么地方访问该变量。VB中变量可以分为3类:局部(Local)变量、模块(Module)变量及全局(Public)变量,其中模块变量包括窗体模块变量和标准模块变量。各变量位于不同的层次。

局部变量

过程级变量只有在声明它们的过程中才能被识别,它们又称为局部变量。

用Dim或者Static关键字来声明它们,两者的区别在于:在整个应用程序运行时,用Static声明的局部变量中的值一直存在,而用Dim声明的变量只在过程执行期间才存在。

对任何临时计算来说,局部变量是最佳选择。例如,可以建立十来个不同的过程,每个过程都包含称作intTemp的变量(同一个变量名在不同的过程中意义可能不同)。只要每个intTemp都声明为局部变量,那么每个过程只识别它自己的intTemp版本。任何一个过程都能够改变它自己的局部的intTemp变量的值,而不会影响别的过程中的intTemp变量。

模块变量

按照缺省规定,模块级变量对该模块的所有过程都可用,但对其它模块的代码不可用。可在模块顶部的声明段用Private或Dim关键字声明模块级变量,从而建立模块级变量。例如:

Private intTemp As Integer

在模块级,Private和Dim之间没有什么区别,但Private更好些,因为很容易把它和Public区别开来,使代码更容易理解。

全局变量

为了使模块级的变量在其它模块中也有效,用Public关键字声明变量。公用变量中的值可用于应用程序的所有过程。和所有模块级变量一样,也在模块顶部的声明段来声明公用变量。例如

Public intTemp As Integer

注意:不能在过程中声明公用变量,只能在模块的声明段中声明公用变量。

总结以上可知:声明语句有如下四种格式,这四种语句创建了不同特性的变量,下面来作详细的介绍:

(I)Dim语句,其格式为:

Dim<变量名>[As<数据类型>]

程序运行时,上述声明在内存中为变量分配空间,并使Visual Basic了解随后要处理数据的数据类型。

Dim语句用于在标准模块(Module)、窗体模块(Form)或过程(Procedure)中定义变量或数组

用Dim语句在窗体的过程中声明的变量称为局部变量,其作用域仅局限在本过程内部,过程一旦执行完毕,其值也就消失了。

例如

Dim Number As Integer'声明Number为Integer(整型)变量。

Dim I As Integer,j As Integer,k As Integer'同时声明为整型变量。

Dim AnyValue,MyValue'AnyValue和MyValue按缺省情况被声明为Variant类型,同时值被设为Empty(空)。

Dim AnotherVar, Choice As Boolean, BirthDate As Date'在一行中声明多种类型变量,AnotherVar为Variant类型,因为它的类型被省略了,Choice为布尔型变量,BirthDate为日期型变量。

(2)Private语句.其格式为:

Private<变量名>[As<数据类型>]

如果要在一个窗体模块的所有过程中共享同一个变量,则应在这个窗体模块的声明段用Private语句进行声明.这种变量称为模块级变量,其作用域为整个窗体模块。这就好比是您家里的电话号码,它在您所在的城市是通用的,但出了这个范围就不能单独使用了。

(3)Public语句,其格式为:

Public<变量名>[As<数据类型>

]

用来在标准模块中定义全局变量或数组。如果在标准模块的声明段中用Public关键字来声明模块级变量,那么这个变量的作用域是整个工程,即它会在整个工程的所有模块中有效,这种变量称为全局变量,也称公用变量。这就好比是加了邮政区号的电话号码,在全国范围内通用。

(4)static语句.其格式为:

static<变量名>[As<数据类型>·

局部变量在过程执行结束后其值不能被保留下来,在每一次过程重新执行时,变量会被重新初始化。如果希望在该过程结束之后,还能继续保持过程中局部变量的值,就应该用static关键字将这个变量声明为静态变量。这样,即使过程结束,该静态变量的值也仍然保留着。

例如我们可以为一个窗体编写下面这样一程序,可以对用户在窗体上单击的次数计数并用显示出来。

Private Sub Form_click()

Static

I As IntegerI = I + 1Label1.Caption = IEnd Sub

再如:

Private Sub Command1_Click()

Static IntCount As IntegerIntCount = IntCount + 1Select Case IntCountCase 1Command1.Caption = "春眠不觉晓"Case 2Command1.Caption = "处处闻啼鸟"Case 3Command1.Caption = "夜来风雨声"Case ElseCommand1.Caption = "花落知多少"IntCount = 0End Select

End Sub

将Static换成Dim,运行一下,连续单击窗体,两者结果的不同显而易见。

注意:就像在过程中不能使用Public和Private关键字一样,在模块的声明段中不能使用static关键字,会报错。

定义完变量,初值的问题:

整数:0

浮点数:0.0

字符串:""

Variant:Empty(保留字,关键字)不同与null,0,Nothing

判断它有没有赋值,就看它的值是不是empty

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值