Тип <имяПеременной> не может быть выведен, поскольку для границ цикла и переменной шага нет расширяющего преобразования к одному типу
Обновлен: Ноябрь 2007
Type of '<variablename>' cannot be inferred because the loop bounds and the step variable do not widen to the same type
Написан цикл For...Next, в котором компилятор не может определить тип данных для переменной цикла, из-за следующих условий:
Тип данных переменной цикла не указан при помощи предложения As.
Границы цикла и переменная шага содержат, по крайней мере, два типа.
Нет стандартных преобразований типов данных.
Поэтому компилятор не определяет тип данных переменной, управляющей циклом.
В следующем примере шаг переменной является символом, а обе границы цикла являются целыми числами. Из-за отсутствия стандартного преобразования между символами и целыми числами возникает следующая ошибка.
Dim stepVar = "1"c
Dim m = 0
Dim n = 20
' Not valid.
' For i = 1 To 10 Step stepVar
' Loop processing
' Next
Идентификатор ошибки: BC30982
Исправление этой ошибки
Измените тип границы цикла либо переменной шага таким образом, чтобы можно было применить расширяющее преобразование к остальным типам. В предыдущем примере измените тип с stepVar на Integer.
Dim stepVar = 1
или
Dim stepVar As Integer = 1
Используйте функции явного преобразования для преобразования границ цикла и переменной шага в соответствующие типы. В предыдущем примере примените функцию Val к stepVar.
For i = 1 To 10 Step Val(stepVar) ' Loop processing Next
См. также
Основные понятия
Явные и неявные преобразования
Расширяющие и сужающие преобразования