VBS基础篇 - 变量(4) - 变量的存活期

生存期(lifetime)就是在脚本运行时,变量在内存中存在且能使用的时间。

变量只有在它的作用域内才有效。一个过程级作用域的变量只有在运行该过程时才有效。当过程结束时,保存该变量的内存就会被释放,就像不存在这个变量一样。同样,脚本级作用域的变量只有在脚本运行时才有效。类似的,类级作用域的变量只有在其它代码使用了基于这个类的对象时才有效。

通过限制变量的作用域,就能限制变量的生存期。这里有一个要时刻记住的重要原则:必须要尽可能地限制变量的生存期和作用域。因为变量会消耗内存,以及操作系统和脚本引擎的资源,只要变量有效就需要这些资源。在使用变量的过程内部声明变量,就能在该过程没有运行时节约该变量所需的资源。

但实际上,资源消耗并不是限制变量作用域的最重要原因;限制作用域可以减少程序的错误,并提高代码的可理解性和可维护性。如果脚本中有多个过程和函数,而所有的变量都是声明为脚本级的,那这些过程和函数就都能修改这些变量。这种情况下任何代码都能随时修改变量,程序员要维护这种代码就很困难。

      看一下这个说明变量作用域和生存期的例子:

?
1
2
3
4
5
6
7
8
9
10
Option Explicit
Private DateToday
DateToday = Date
MsgBox "明天是:" & AddOneDay(DateToday)
   
Function AddOneDay(DateAny)
     Dim DateResult
     DateResult = DateAdd( "d" , 1, DateAny)
     AddOneDay = DateResult
End Function

这个脚本有一个AddOneDay()函数。用Dim在函数内部声明的变量 DateResult 的作用域是过程级的,这就说对于函数外部的代码该变量无效。而变量 DateToday 使用Private声明的,有脚本级的作用域。变量 DateResult 只有在AddOneDay()函数运行时才被激活,而 DateToday 在整个脚本的生存期内都是激活的。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值