指数数组的边界之外

时间:2010-09-22 01:32:20

标签: vb.net indexoutofboundsexception

我随机收到此错误消息:

  

索引超出了数组的范围。

它指向这一行:

Dim placename As String = RichTextBox1.Lines(0)

3 个答案:

答案 0 :(得分:12)

这意味着您的RichTextBox1中没有任何行。将其替换为:

Dim placename As String
If RichTextBox1.Lines.Count() > 0 Then
    placename=RichTextBox1.Lines(0)
Else
    placename = String.Empty
End if

更多信息:
想象一个数组作为街道,数组中的每个元素都是一个房子。如果街上有30栋房子,我想找到20号门牌,我从头开始(1)然后一直走到20岁。有一个数组,0是你开始的地方而不是1,所以一个数组包含30个元素,包含索引0-29。现在回到街头比喻。想象一下,我走到街上,要求31号门。那个房子不存在,因为只有30个房子。这实际上是该计划告诉你的。它说'阵列中没有足够的元素让我找到你要求的那个'。所以你要求行数组中的元素0,有效地说'给我第一行'。现在,如果文本框中有0行,则第一行不存在,您将收到此错误。

答案 1 :(得分:1)

  

索引超出了数组的范围

该错误消息通常意味着您已在一个空的位置调用了数组中的对象,或者在那里没有任何内容。它发生在以下情况中;

myArray = [0,1,2,3];

trace(myArray[6]);

由于索引6处的数组中没有任何内容,因此它超出了界限。如果在调用时数组为空,则它将为索引0处的对象提供错误。

我发布的代码数量无法告诉您更多信息。尝试检查以确保在调用该行之前已填充数组。

答案 2 :(得分:0)

也许您的SQL Reader没有获得与您提供的索引相关联的任何行。那是我的情况;我收到了不在数据库中的列。

您可以按如下方式更改代码:

Dim placename As String
If RichTextBox1.Lines.Count > 0 Then placename = RichTextBox1.Lines(0)
相关问题