之前已经使用过变量并赋值

时间:2015-06-26 08:44:52

标签: vb.net

我正在为我的作业制作机器人,它使用代理来浏览网站。我有一个名为“浏览”的字段,它允许我浏览代理文件并读入一个数组并显示来自计数器的代理总数。我被困在这里。以下是我目前使用的代码。请帮忙

  

变量proxyArray之前已经使用并分配了一个值。空   引用异常可能在运行时产生。

代码

Private Sub browserProxy_Click(sender As Object, e As EventArgs) Handles browserProxy.Click
        Dim myStream As Stream = Nothing
        Dim selectedFile As String
        Dim openFileDialog1 As New OpenFileDialog()
        Dim proxyArray() As String
        Dim totalProxy As Integer

        openFileDialog1.InitialDirectory = "C:\"
        openFileDialog1.Filter = "Text File (*.txt)|*.txt"
        openFileDialog1.FilterIndex = 1
        openFileDialog1.RestoreDirectory = False

        If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            selectedFile = String.Format(openFileDialog1.FileName)
            Dim objreader As New System.IO.StreamReader(selectedFile)
            i = 0
            Do While Not objreader.EndOfStream
                proxyArray(i) = objreader.ReadLine
                i += 1
            Loop
            totalProxy = i
            objreader.Close()
        End If
    End Sub

在运行时弹出。

enter image description here

2 个答案:

答案 0 :(得分:3)

编译器是对的,您已声明变量proxyArray,但您从未初始化它。这是一个初始化的数组,包含10个字符串Nothing

Dim proxyArray(9) As String

但由于项目数量未知,因此您应该使用List(Of String)。它是可调整大小的,而数组具有固定的大小。

Dim proxList As New List(Of String)
'...'
     proxList.Add(objreader.ReadLine)

如果您需要阵列,最后可以使用proxList.ToArray()

答案 1 :(得分:0)

每次使用List(Of String)ReDim Preserve proxyArray(i + 1)