1

考虑下面的代码:

Option Explicit

Dim Count : Count = 4


'Case-I
Sub Display1()

 MsgBox(Count)

End Sub

'Case-II

Sub Display2(Count)

 MsgBox(Count)

End Sub

困惑

  • 这里的变量应该Count可以被两者访问 method还是只能被Display2方法访问?
  • 如果变量count无法通过Display1方法访问,那么有什么方法可以使其在任何子或函数中可用,而无需将其传递给该变量SubFunction
  • 现在,如果我Count从 sub 更新变量,Display2则该值可以用于其他值,function或者sub假设 VBScript 具有global变量声明。
4

1 回答 1

2

变量count在任何函数或子过程之外声明,因此它的范围在这里是全局的。全局变量可以在任何函数或子过程中使用,其值可以在程序流程中的任何地方更改。

现在,如果您调用此过程并运行 .vbs 文件,4两种情况下都会显示消息框。

Option Explicit

Dim Count : Count = 4
'Case-I
Sub Display1()
 MsgBox(Count)
End Sub

'Case-II
Sub Display2(Count)
 MsgBox(Count)
End Sub

Call Display1()
Call Display2(Count)

如果您count在任何函数或子过程中更改变量的值,它的值也会在其他过程中发生变化,因为它的范围是全局的。

选项显式

Dim Count : Count = 4
'Case-I
Sub Display1()
 Count = 5               ''value changed here 
 MsgBox(Count)
End Sub

'Case-II
Sub Display2(Count)
 MsgBox(Count)
End Sub

Call Display1()
Call Display2(Count)

在上述情况下,两个消息框都会显示5

于 2013-01-02T04:10:14.177 回答