我的阵列正在快速调整大小

时间:2013-02-20 10:59:49

标签: arrays vb.net

如果我Dim array As String()我似乎能够调整该数组的大小并在其中随意添加任何内容。例如:

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

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

我没有想到这样做,所以我读到你必须先指定数组的大小!为什么会这样?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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), ":")

Split的结果没有复制到PackUrls。原始内容(顺便说一句)不会被Split中的新内容替换。因此,无需调整阵列大小。你可以像这样轻松地重写你的代码,它会起作用:

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