VPS    微软    Win10    云市场    苹果    Office2016

VB编程基础教程5-静态变量

 编程开发   2005-02-25

除范围之外,变量还有存活期,在这一期间变量能够保持它们的值。在应用程序的存活期内一直保持模块级变量和公用变量的值。但是,对于 dim 声明的局部变量以及声明局部变量的过程,仅当过程在执行时这些局部变量才存在。通常,当一个过程执行完毕,它的局部变量的值就已经不存在,而且变量所占据的内存也被释放。当下一次执行该过程时,它的所有局部变量将重新初始化。
但可将局部变量定义成静态的,从而保留变量的值。在过程内部用 static 关键字声明一个或多个变量,其用法和 dim 语句完全一样:
static depth
例如,下面的函数将存储在静态变量 accumulate 中的以前的运营总值与一个新值相加,以计算运营总值。
function runningtotal (num)
   static applessold
   applessold = applessold + num
   runningtotal = applessold
end function
如果用 dim 而不用 static 声明 applessold,则以前的累计值不会通过调用函数保留下来,函数只会简单地返回调用它的那个相同值。
在模块的声明段声明 applessold,并使它成为模块级变量,由此也会收到同样效果。但是,这种方法一旦改变变量的范围,过程就不再对变量排他性存取。由于其它过程也可以访问和改变变量的值,所以运营总值也许不可靠,代码将更难于维护。
声明所有的局部变量为静态变量
为了使过程中所有的局部变量为静态变量,可在过程头的起始处加上 static 关键字。例如:
static function runningtotal (num)
这就使过程中的所有局部变量都变为静态,无论它们是用 static、dim 或 private 声明的还是隐式声明的。可以将 static 放在任何 sub 或 funtion 过程头的前面,包括事件过程和声明为 private 的过程。

各位正在潜水的同学请注意,有 1 位无聊人士 在异次元附近海域出没!
  • (*^__^*) 嘻嘻……[Yoci-77]谁说过路的不能坐沙发[Yoci-01]

    9 10
     





评论内容 (*必填):
Ctrl + Enter 快速提交