ExecuteGlobal 語句
執行一個功多個在指令碼全域性名字空間中指定的語句。
ExecuteGlobal statement
statement 引數是一個包含一個或多個可執行語句的字串表示式 。在statement 引數中可以包含多條語句, 使用冒號將其分開。
說明
在 VBScript 中, x = y 有兩種解釋方法。第一種方法是作為一條賦值語句, 將 y 的值賦給 x。第二種方法是作為一個表示式 ,用於測試 x 和 y 是否具有相同的值。如果它們相等,則結果為 True; 如果他們不相等,其結果為 False.ExecuteGlobal 語句總是使用第一種方法,而 Eval 方法總是使用第二種方法。
注意 在 Microsoft? Visual Basic Scripting Edition?中, 賦值與比較之間不存在混消,因為賦值運算子(=) 不同於比較運算子。
在指令碼的全域性名字空間中,ExecuteGlobal 中的所有語句都有是可執行的。因此,允許您將程式碼新增到程式中,以便於任何 過程 能夠對其進行訪問。例如,一個 VBScript Class 語句在執行時可以執行。隨之函式創造此類的一個新例項。
在執行時新增過程和類是非常有用的,但是也可能導致在執行時覆蓋已有的全域性 變數 和函式。因為這可能導致非常嚴重的程式問題,因此,當使用 ExecuteGlobal 語句時一定得非常謹慎。如果您無需訪問過程之外的變數或函式,最好使用Execute 語句,因為它隻影響主調函式的名字空間。
下面的例子解釋了 ExecuteGlobal 語句的用法。
Dim X '
宣告X
為全域性變數。X = "Global" '
給全域性變數X
賦值。Sub Proc1 '
宣告過程。Dim X '
在區域性變數中宣告X
。X = "Local" '
給區域性變數X
賦值。'
此處的可執行語句'
建立一個過程,
當被呼叫時,
列印X
。'
此處將列印全域性變數X
的值,因為Proc2
'
繼承了全域性變數中的一切。ExecuteGlobal "Sub Proc2:
列印X: End Sub"
Print Eval("X") '
列印區域性X
。Proc2 '
在全域性作用區域中呼叫Proc2
'
將列印"Global"
。End Sub
Proc2 '
此行將導致錯誤
'
因為Proc2
在Proc1
之外是不可用的。Proc1 '
呼叫Proc1
。Execute "Sub Proc2:
列印X: End Sub"
Proc2 '
此行呼叫成功,因為Proc2
'
在全域性作用區域中是可用的。
下面的例子演示了 ExecuteGlobal 語句可以被重寫,因此您無需將下面的整個過程都包括在引用標記之內。
S = "Sub Proc2" & vbCrLfS = S & " Print X" & vbCrLf S = S & "End Sub"ExecuteGlobal S
写评论
很抱歉,必須登入網站才能發佈留言。