你调用的对象是空的

时间:2012-08-22 16:48:06

标签: .net vb.net

我知道这个错误已被问过这么多次,但我仍然无法找到如何避免空值我将发布代码并指向导致错误的行

Private Sub loadRevFiles()
    ' load all the SVN information for the selected revision.'
    Dim a, b, RevNo, RevDataCnt As Integer
    ReDim filesAtRev(0 To SvnData(SvnData.Length - 1).RevNo)'this line throw the error'

    RevDataCnt = 0

    ' loading all the changes files into datastructure RevsionsReportDataStruct'
    For a = 0 To SvnData.Length - 1
        RevNo = SvnData(a).RevNo
        If RevNo > HeadRev Then Continue For
        For b = 0 To SvnData(a).changedFileNames.Length - 1
            If SvnData(a).changedFileNames(b).Contains(".dcm") Then
                ReDim Preserve RevisionsData(0 To RevDataCnt)
                RevisionsData(RevDataCnt).RevNumber = RevNo
                RevisionsData(RevDataCnt).FileName = SvnData(a).changedFileNames(b)
                RevisionsData(RevDataCnt).FilePathAndName =           SvnData(a).changedPathAndFileNames(b)
                RevisionsData(RevDataCnt).FileAction = SvnData(a).FileAction(b)
                RevisionsData(RevDataCnt).SVNNo = a
                RevDataCnt = RevDataCnt + 1
            End If
        Next
    Next
End Sub

这是一个工具用来读取dcm文件的函数找到更改并将它们全部导出到excel文件,每当你提交更改时你得到了一个新版本 出于某种原因,当修订版本数量较少但当修订版本的文件数量很高时,此功能工作正常。

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

如果此行抛出NullReference例外:

ReDim filesAtRev(0 To SvnData(SvnData.Length - 1).RevNo)

然后 SvnDataNothing SvnData中的最后一个元素为Nothing。

很难说这是什么,因为我们对SvnData的来源一无所知,但是如果你能够重现问题,你应该能够轻松地通过它进行调试并检查值自己。

一旦你发现Nothing的问题价值是什么,你需要找出为什么,并处理这种情况(如果它是合法的)或修复原因(如果它永远不应该是Nothing)。