2013-10-03 56 views
0

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

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 
+0

一起避免这个问题,并尽可能使用集合。 '昏暗的集群成员作为新集合(十进制)''不用担心长度。 – nunzabar

回答

2

第一个数组声明声明数组,但目前还没有一个尺寸。当你尝试访问一个元素时,使用它将产生一个NullReferenceException。数组必须之前有一个大小可用,这样做既可以当你声明它,就像你的第二个例子,或ReDim语句做到这一点后:

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

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

+0

谢谢你的回应。但是我发现在上面添加的情况下,SplitTemp()数组在不声明大小的情况下工作良好。 – dipa

+0

因为它是从String.Split()方法分配的。它创建了数组并将其返回。有关于vb.net可用的优秀入门书籍,你可以阅读一本好书。 –

+0

好的..感谢您的解释和建议..;) – dipa