0

我想知道我们什么时候应该在中包含数组的大小,什么时候我们不需要包含数组的大小。因为在某些情况下,当我不包含数组的大小时,会出现错误消息告诉“对象引用未设置为对象的实例”。

Dim ClusterMember(,) As Decimal or 

Dim ClusterMember(500,100) As Decimal

谢谢您的答复。但是我在下面的案例中发现,数组 SplitTemp() 可以很好地工作,而无需在声明时声明它的大小。

Dim ClusterMember(200, 20) As String
Dim SplitTemp() As String

Streamer = IO.File.OpenText(txtOpenFile.Text)
MyString = Streamer.ReadToEnd.Split(vbNewLine)

SplitResult = MyString(0).Split(",")
DataDimention = SplitResult.Length - 1
DataNumber = MyString.Length

For i = 0 To DataNumber - 1
   SplitTemp = MyString(i).Split(",")
      For j = 0 To DataDimention
         ClusterMember(i, j) = SplitTemp(j)
      Next
Next
4

1 回答 1

3

第一个数组声明声明了一个数组,但它还没有大小。当您尝试访问元素时,使用它会产生 NullReferenceException。数组在可用之前必须具有大小,您可以在声明它时这样做,就像您的第二个示例一样,或者稍后使用 Redim 语句进行:

Dim ClusterMember(,) As Decimal
''...
Redim ClusterMember(500, 100)

它创建了一个可以存储 501 x 101 个元素的数组。

于 2013-10-03T01:47:33.510 回答