Der Typ von '<Variablenname>' kann nicht abgeleitet werden, weil die Schleifenbegrenzungen und die step-Klausel nicht in denselben Typ konvertiert werden
Aktualisiert: November 2007
Type of '<variablename>' cannot be inferred because the loop bounds and the step variable do not widen to the same type
Sie haben eine For...Next-Schleife geschrieben, in der der Compiler aufgrund der folgenden Bedingungen keinen Datentyp für die Schleifensteuerungsvariable ableiten kann:
Der Datentyp der Schleifensteuerungsvariablen wird nicht mit einer As-Klausel angegeben.
Die Schleifenbegrenzungen und die step-Variable enthalten mindestens zwei Datentypen.
Zwischen den Datentypen werden keine Standardkonvertierungen unterstützt.
Daher kann der Compiler den Datentyp einer Schleifensteuerungsvariablen nicht ableiten.
Im folgenden Beispiel entspricht die step-Variable einem Zeichen, und die Schleifenbegrenzungen sind ganze Zahlen. Da es keine Standardkonvertierung zwischen Zeichen und ganzen Zahlen gibt, wird dieser Fehler gemeldet.
Dim stepVar = "1"c
Dim m = 0
Dim n = 20
' Not valid.
' For i = 1 To 10 Step stepVar
' Loop processing
' Next
Fehler-ID: BC30982
So beheben Sie diesen Fehler
Ändern Sie ggf. die Typen der Schleifenbegrenzungen und step-Variablen, sodass mindestens eine einem Typ entspricht, in den andere erweitert werden können. Ändern Sie im vorhergehenden Beispiel den Typ von stepVar auf Integer.
Dim stepVar = 1
- oder -
Dim stepVar As Integer = 1
Verwenden Sie explizite Konvertierungsfunktionen, um Schleifenbegrenzungen und step-Variable in die entsprechenden Typen zu konvertieren. Wenden Sie im vorhergehenden Beispiel die Val-Funktion auf stepVar an.
For i = 1 To 10 Step Val(stepVar) ' Loop processing Next
Siehe auch
Konzepte
Implizite und explizite Konvertierungen
Erweiternde und eingrenzende Konvertierungen
Referenz
For...Next-Anweisung (Visual Basic)