2017 VB.net null引用异常



你能发现我的错误吗?

我是VB.net的新手,所以我相信这是显而易见的。。。我已经阅读了StackOverflow上对VB.net nullreferenceexception的所有引用,仍然感到困惑。

这是代码:

For Each oSlide In oPres.Slides.Range
strDisplayVerse = oSlide.Shapes.Title.TextFrame.TextRange.Characters.Text
If (IsNumeric(strDisplayVerse.Substring(0, 1)) = True And strDisplayVerse.Substring(2, 1) = "1") Then
arrVersesChorusOther(intVCO) = "Verse " & strDisplayVerse.Substring(0, 1)
strDisplayVerse = "Verse " & strDisplayVerse.Substring(0, 1) &
", slide " & strDisplayVerse.Substring(2, 1)
intVCO = intVCO + 1
End If
Next
'-----------
For Each oSlide In oPres.Slides.Range
strDisplayVerse = oSlide.Shapes.Title.TextFrame.TextRange.Characters.Text
If strDisplayVerse.Substring(0, 1) = "C" Then
strDisplayVerse = "Chorus, slide " & strDisplayVerse.Substring(2, 1)
Else
If IsNumeric(strDisplayVerse.Substring(0, 1)) Then
strDisplayVerse = "Verse " & strDisplayVerse.Substring(0, 1) &
", slide " & strDisplayVerse.Substring(2, 1)
End If
End If
TxtBxVerses.Text = TxtBxVerses.Text & strDisplayVerse & Environment.NewLine
Next

第五行失败了:

strDisplayVerse = "Verse " & strDisplayVerse.Substring(0, 1) &
", slide " & strDisplayVerse.Substring(2, 1)

第二个循环是有效的代码。我交换了该代码上方的行,看看是否是数组设置导致了问题——我在同一代码行上收到了错误。然后我把代码换成:

TxtBxVerses.Text = TxtBxVerses.Text & strDisplayVerse & Environment.NewLine

它也在第二个循环中工作——这一行代码中出现了相同的错误。

我可以看到strDisplayVerse等于"1-1废话",所以这个变量有数据,不为空。arrVersesChorusOther只是在PUBLIC Class Form1语句之后使用PUBLIC定义的未定义大小的字符串数组。intVCO是一个PUBLIC整数集,刚好位于arrVersesChorusOther之下。TxtBxVerses是表单上的一个文本框。

我一直在摆弄代码,试图找出问题所在。

"arrVersesChorusOther只是一个用PUBLIC定义的未定义大小的字符串数组"是罪魁祸首。

作为VB.Net的新手,我不知道没有维度就不能定义公共数组。我为数组添加了一个大小,现在它可以工作了。

我不知道你是否可以在子程序中有一个"Dim arrABC((as String",但我想我会在需要的时候找到它

最新更新