1

我在这里有这段代码:

Dim MasterIndex As String()()

Private Function Lookup(ByVal Search_path As String) As Integer
    Dim i As Integer = 0
    Do Until MasterIndex(i)(0) Is Nothing
        If Search_path = MasterIndex(i)(0) Then
            Return MasterIndex(i)(1)
        End If
    Loop
    Return -1
End Function

这给了我在线Object reference not set to an instance of an object上发生的错误Do Until。为什么是这样?我怎样才能解决这个问题?

4

2 回答 2

4

永远不会分配 MasterIndex 变量,这就是您遇到异常的原因

您应该首先通过调用 New() 构造函数来实例化 MasterIndex:

 Dim MasterIndex As new String()()

并在调用 Lookup 函数之前用数据填充它。

就像是:

 Private MasterIndex As String()() = New String()() {New String() {"A1", "A2"}, New String() {"B1", "B2"}}
于 2011-10-14T20:43:18.233 回答
1

MasterIndex 未初始化或 MasterIndex(0) 未初始化。

假设您在程序的其他地方执行此操作,您能否显示初始化该变量的代码?

如果在该行设置断点并检查 MasterIndex 会发生什么?

于 2011-10-14T20:43:27.123 回答