У меня есть структура кода примерно так:
For row = 1 To numRows
Dim arrayIndex As Integer = 0
For column As Integer = startColumn To endColumn
' whatever code
arrayIndex = arrayIndex + 1
Next
Next
Dim arrayIndex As Integer = 0
For column As Integer = startColumn To endColumn
' whatever code
arrayIndex = arrayIndex + 1
Next
Не совсем код, поэтому мне не нужны предложения по рефакторингу, но моя проблема заключается в следующем - с этим кодом я получаю ошибку компилятора для первого Dim arrayIndex As Integer = 0
- "Variable" arrayIndex "скрывает переменную ограждающий блок. " Насколько я могу судить, arrayIndex является локальным по отношению к первому циклу for и не должен существовать к тому времени, когда мы достигнем второго цикла. Если я пытаюсь изменить второе объявление arrayIndex на arrayIndex = 0
, я получаю ошибку "Имя 'arrayIndex' не объявлено", как я и ожидал. Так это видно или нет? Это как-то связано с ключевым словом Dim? Любые предложения о том, как обойти это, кроме именования второй индексной переменной чем-то другим?