Freigeben über


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

Lokaler Typrückschluss

Erweiternde und eingrenzende Konvertierungen

Referenz

For...Next-Anweisung (Visual Basic)

Option Infer-Anweisung

Funktionen für die Typkonvertierung

Val-Funktion