Для цикла возникает нежелательное событие "exit sub"

действительно странное поведение в Vb.net 2010 Express. Вот код:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 Dim a As Integer
 '... Other lines...'
 Dim di As New IO.*************(App_Path & "midi\")
 Dim diar1 As IO.FileInfo() = di.GetFiles()
 For a = 0 To diar1.Count
 midrep(a) = diar1(a).Name
 Next a
 Preload()
End Sub

По какой-то причине последняя строка с инструкцией "Preload()" не выполняется. (Я проверил с точкой останова, он даже не дошел до него).

Если я удалю цикл, он отлично работает. С циклом я не получаю никаких ошибок или предупреждений, но последняя строка полностью игнорируется. За цикл выполняется правильно.

Мне нужен цикл перед Preload().

Кто-нибудь знает, как решить проблему?

Всем спасибо

1 ответ

Я собираюсь опасаться, что вы не выходите из цикла For потому что вы превышаете границы midrep (который вы не дали нам) или diar1, что, очевидно, представляет собой массив Объекты FileInfo.

Фактически, независимо от определения midrep, вы определенно превышаете границы diar1, так как diar1.Count всегда будет на один выше, чем последний доступный индекс. Вам нужно прекратить цикл, прежде чем перейти к diar1.Count.

For a = 0 To diar1.Count - 1
' ^^^^
 midrep(a) = diar1(a).Name
Next a

licensed under cc by-sa 3.0 with attribution.