我有一个问题,即从VBScript中的类中的数组中分配/检索正确的值。每当我尝试通过独立函数设置数组的值时,它就不起作用而且我不断获得旧的数组值。
这是一个示例代码:
Class NewClass
Public TestValues
Public Sub Init()
TestValues = array("value0", "value1", "value2")
End Sub
End Class
Class NewFunctions
Public Function GetValue(xRef)
GetValue = xRef(2)
print "Value within Function: " & xRef(2)
End Function
Public Sub SetValue(xRef, xValue)
xRef(2) = xValue
print "Value within Sub: " & xRef(2)
End Sub
End Class
Dim MyClass, MyFunction
Set MyClass = New NewClass
Set MyFunction = New NewFunctions
现在,当我尝试使用 SetValue Sub设置给定数组 MyClass.TestValues 的索引2 时,它声称新的已经设置了值,但是当我为此数组调用 GetValue 或直接打印出 MyClass.TestValues(2)的内容时,我仍然会获得旧值:
MyFunction.SetValue MyClass.TestValues, "newvalue2"
返回: Sub:newvalue2 中的值
但是当我使用GetValue检索值时:
MyFunction.GetValue MyClass.TestValues
返回: Function:value2 中的值,这是旧值。
但是,当我直接设置数组时:
Myclass.TestValues(2) = "newvalue2"
然后打电话给:
MyFunction.GetValue MyClass.TestValues
给出了正确的结果:函数中的值:newvalue2
我不确定这是否是一般的VBScript行为,我错误地希望以这种“脏”方式更改数组值,或者这是否与HP-UFT(统一功能测试)相关,因为这是我可以的地方观察这一点。
我也不是一个熟练的VBScripter,所以我感谢任何帮助。