1

如果我这样做,Dim array As String()我似乎能够调整该数组的大小并即时将任何内容放入其中。例如:

Dim PackUrls As String()
PackUrls = Split(WebRequest("http://" + sPackBaseURI, sPackBaseURIUsername, sPackBaseURIPassword), ":")

而且我没有收到错误,并且数组没有发生任何奇怪的事情。

我没有考虑就这样做了然后我读到您必须先指定数组的大小!为什么会这样?

4

2 回答 2

1

当您将数组分配给 var 时,无论大小如何,您都将用新数组替换它。var 现在指向相同类型的新数据,因此不需要错误。

当您将数组分配给数组 var 时,您不是单独复制项目,而是变量指向新数组。

于 2013-02-20T11:23:22.330 回答
1

这就是您的代码中发生的事情

'Create an empty string array called PackUrls
Dim PackUrls As String()

'Create a new string array from the Split function 
'and assign it to the variable PackUrls, replacing the old value.
PackUrls = Split(WebRequest("http://" + sPackBaseURI, _
                            sPackBaseURIUsername, sPackBaseURIPassword), ":")

没有从Splitto的结果复制PackUrls。原始内容(顺便说一句)被替换为来自Split. 因此无需调整数组的大小。您可以像这样轻松地重写您的代码,它会起作用:

Dim PackUrls As String() = Split(WebRequest("http://" + sPackBaseURI, _
                           sPackBaseURIUsername, sPackBaseURIPassword), ":")
于 2013-02-20T11:40:16.053 回答