这里有这样的代码:
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
行。为什么会这样?我该如何解决这个问题?
MasterIndex变量从未被赋值,这就是为什么会出现异常
你应该首先通过调用New()构造函数实例化MasterIndex:
Dim MasterIndex As new String()()
并在调用Lookup函数之前用数据填充它。
类似:
Private MasterIndex As String()() = New String()() {New String() {"A1", "A2"}, New String() {"B1", "B2"}}
MasterIndex未初始化或MasterIndex(0)未初始化。
如果你在程序的其他地方初始化了这个变量,你能展示初始化这个变量的代码吗?
如果在那行上放一个断点并检查MasterIndex会发生什么?