Vb.net 为什么该指数超出范围?我该怎么解决呢?
我有以下代码:Vb.net 为什么该指数超出范围?我该怎么解决呢?,vb.net,visual-studio-2012,Vb.net,Visual Studio 2012,我有以下代码: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If Not TextBox1.Text = "" Then If TextBox1.Text.Contains("ping") Then PingSplit = TextBox1.Text.Split(" ") End If Select Case True Ca
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If Not TextBox1.Text = "" Then
If TextBox1.Text.Contains("ping") Then
PingSplit = TextBox1.Text.Split(" ")
End If
Select Case True
Case TextBox1.Text.Contains("ping")
' I get an IndexOutOfRange Exception was unhandled on below line
If PingSplit(0) Is Nothing Or PingSplit(1) Is Nothing Then
MsgBox("Invalid Ping IP!")
Else
ListBox1.Items.Add(GetPingMs(PingSplit(1)))
PingSplit(0) = vbNullString
PingSplit(1) = vbNullString
End If
End Sub
然而,当我简单地键入“ping”时,我无法让代码正常工作,“ping www.google.com[1]”工作得很好,但是它不能只使用ping。我的想法是,我键入ping“x”,代码将ping拆分并获取地址(x),然后在GetPingMs函数中使用地址(getpingMsg(pingsplit(1)),但是我得到一个indexoutfrange异常。您得到一个异常,因为您试图反引用一个不存在的数组元素。如果您键入的都是“ping”然后,您的
PingSplit
数组将只有一个元素,位于索引0处。但您正在尝试引用第二个元素:
PingSplit(1)
在尝试引用可能不存在的元素之前,需要检查数组的长度。类似的方法可能会起作用(我的VB有点生锈,我不能100%确定这是检查长度的方式):
如果PingSplit.Length小于2,则
MsgBox(“无效的Ping IP!”)
如果结束
基本上,每当您要引用集合中的项时,都应该首先对集合进行一些检查,以确保这些项存在。您会遇到一个异常,因为您试图取消引用不存在的数组元素。如果您键入的都是“ping”然后,您的
PingSplit
数组将只有一个元素,位于索引0处。但您正在尝试引用第二个元素:
PingSplit(1)
在尝试引用可能不存在的元素之前,需要检查数组的长度。类似的方法可能会起作用(我的VB有点生锈,我不能100%确定这是检查长度的方式):
如果PingSplit.Length小于2,则
MsgBox(“无效的Ping IP!”)
如果结束
基本上,每当您要引用集合中的项时,都应该首先对集合进行一些检查,以确保这些项存在。您会遇到一个异常,因为您试图取消引用不存在的数组元素。如果您键入的都是“ping”然后,您的
PingSplit
数组将只有一个元素,位于索引0处。但您正在尝试引用第二个元素:
PingSplit(1)
在尝试引用可能不存在的元素之前,需要检查数组的长度。类似的方法可能会起作用(我的VB有点生锈,我不能100%确定这是检查长度的方式):
如果PingSplit.Length小于2,则
MsgBox(“无效的Ping IP!”)
如果结束
基本上,每当您要引用集合中的项时,都应该首先对集合进行一些检查,以确保这些项存在。您会遇到一个异常,因为您试图取消引用不存在的数组元素。如果您键入的都是“ping”然后,您的
PingSplit
数组将只有一个元素,位于索引0处。但您正在尝试引用第二个元素:
PingSplit(1)
在尝试引用可能不存在的元素之前,需要检查数组的长度。类似的方法可能会起作用(我的VB有点生锈,我不能100%确定这是检查长度的方式):
如果PingSplit.Length小于2,则
MsgBox(“无效的Ping IP!”)
如果结束
基本上,每当您要引用集合中的项目时,您都应该首先对集合进行一些检查,以确保这些项目存在。
选择大小写在这里是不必要的。只需使用If
。或者更好的是-If not TextBox1.Text.Contains(“ping”)然后返回
。缩进更少-更容易阅读代码。此处不需要选择大小写
。如果
,只需使用。如果不使用文本框1.Text.Contains(“ping”),则使用,甚至更好然后返回
。缩进更少-更容易阅读代码。此处不需要选择大小写
。如果
,只需使用。如果不使用文本框1.Text.Contains(“ping”),则使用,甚至更好然后返回
。缩进更少-更容易阅读代码。此处不需要选择大小写
。如果
,只需使用。如果不使用TextBox1.Text.Contains(“ping”),则返回
。缩进更少-更容易阅读代码。