我在VBScript中有一些数组的问题:我有一个中心数组,在这里我保存了一些自定义对象。稍后,我想访问这些元素以打印出对象。但这不起作用。 这是我的代码;
sub start
redim selektionsArray(0)
for i = 0 to 10
Dim TheDude : Set TheDude = (New Selektion2)("a" & i, "b" & i)
ReDim Preserve selektionsArray(ubound(selektionsArray) + 1)
set selektionsArray(ubound(selektionsArray)) = TheDude
'Works
msgbox selektionsArray(ubound(selektionsArray)).Typ & " = " & selektionsArray(ubound(selektionsArray)).Wert
next
dim i
for i = 0 to ubound(selektionsArray)
set element3 = selektionsArray(i)
'don't work
msgbox selektionsArray(i).Typ & " = " & selektionsArray(i).Wert
next
dim sel
for each sel in selektionsArray
'don't work to
msgbox sel.Wert
next
'strange thing is ubound(selektionsArray) --> 11
end sub
Class Selektion2
Private m_typ
Private m_wert
Public Default Function Init(Typ, Wert)
m_typ = Typ
m_wert = Wert
Set Init = Me
End Function
Public Property Get Typ
Typ = m_typ
End Property
Public Property Get Wert
Wert = m_wert
End Property
public function getWert()
getWert = m_wert
end function
End Class
我无法访问初始化循环之外的数组元素,这有什么问题?
答案 0 :(得分:1)
您的错误是假设
redim selektionsArray(0)
创建一个空数组。它没有,数组在索引0处有一个空的第一个元素。添加更多对象没有问题,但是当你尝试
时set element3 = selektionsArray(i)
对于i = 0,或者要访问For Each循环中的第一个sel,该空元素不能用于设置/ a变量。因此,请更改“创建我的阵列”#39;声明
redim selektionsArray(-1)