Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 为什么该指数超出范围?我该怎么解决呢?_Vb.net_Visual Studio 2012 - Fatal编程技术网

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”),则返回
。缩进更少-更容易阅读代码。