Vb.net 空引用错误Visual Basic-can';我找不到问题所在

Vb.net 空引用错误Visual Basic-can';我找不到问题所在,vb.net,nullreferenceexception,Vb.net,Nullreferenceexception,我正在编写代码,但有一个空引用异常。我能看到它在哪里,但我不知道如何修理它。我真的不知道为什么,我一直在反复阅读我的代码,尝试不同的东西。我想我有点麻木,或者可能有心理障碍 这两位代码是: For looper = 0 To 3 Sandpit.Controls.Add(Me.QueueMembers(looper).VisRep) Me.QueueMembers(looper).VisRep.ForeColor = Me.QueueMembers

我正在编写代码,但有一个空引用异常。我能看到它在哪里,但我不知道如何修理它。我真的不知道为什么,我一直在反复阅读我的代码,尝试不同的东西。我想我有点麻木,或者可能有心理障碍

这两位代码是:

       For looper = 0 To 3

        Sandpit.Controls.Add(Me.QueueMembers(looper).VisRep)
        Me.QueueMembers(looper).VisRep.ForeColor = Me.QueueMembers(looper).GetBackgroundColour
        Select Case (Me.Direction)
            Case "R"
                TempPoint.X += 32
                TempPoint.Y = 260
            Case "U"
                TempPoint.Y += 32
            Case "L"
                TempPoint.X -= 32
        End Select
用于创建队列和所有内容。但是,当我尝试使用以下代码从队列中删除任何内容时:

       Public Sub RemoveDiner()
    Dim TempDiner As Diner
    For looper = 0 To Me.EndPointer - 1
        TempDiner = QueueMembers(looper)
        QueueMembers(looper) = QueueMembers(looper + 1)

    Next           
        DrawQueue()
        End Sub
我认为是循环器导致了问题,因为一旦删除了项,QueueMembers数组中就没有三个项了。 如果有人能就如何解决这个问题给我一些建议,因为我对此一无所知,我将非常感激。
谢谢

好的,我现在已经通过使用一个名为looperNumber的新变量,在RemoveDiner的末尾减少了1,成功地将它用于被删除的3个项目。并从3开始,用于将项目添加到队列中。但是它对超过3个项目不起作用,当我将项目添加到队列中时,我需要对drawQueue使用3…有什么帮助吗?哪一行导致空引用异常?据我所知,实际上并没有删除QueueMembers数组的成员,只是覆盖了一个。可能是
looper+1
正在调用不存在的数组成员(例如QueueMembers(3))Sandpit.Controls.Add(Me.QueueMembers(looper.VisRep)这是我收到错误消息的那一行。是的,我没有删除它,只是删除/覆盖它。我计划将一个队列中的项目输入到另一个队列中,但我只是想先让这项工作正常。如果您在该行中添加断点并逐步遍历代码,您应该能够找到确切的空值,即是Sandpit.Controls还是Me.QueueMembers,还是Me.QueueMembers(looper)?