Der Typ von '<Variablenname>' ist mehrdeutig, weil die Schleifenbegrenzungen und die step-Klausel nicht in denselben Typ konvertiert werden
Aktualisiert: November 2007
Type of '<variablename>' is ambiguous because the loop bounds and the step variable do not widen to the same type
Der Code enthält eine For...Next-Schleife, 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 sind mehrere Konvertierungen möglich.
Es gibt keinen optimalen Typ unter den Kandidaten, sodass die Auswahl des Typs für die Schleifensteuerungsvariable mehrdeutig ist.
Die folgende Schleife weist beispielsweise eine Schleifenbegrenzung vom Typ Integer und eine Schleifenbegrenzung vom Typ UInteger auf:
Dim m As Integer = 1
Dim n As UInteger = 10
' Not valid.
' For i = m To n
' Loop processing.
' Next
Es wird eine mögliche Konvertierung zwischen Integer und UInteger sowie eine mögliche Konvertierung zwischen UInteger und Integer unterstützt, bei beiden handelt es sich jedoch um einschränkende Konvertierungen, sodass keine der beiden eine optimale Wahl darstellt.
Im nächsten Beispiel wird eine dritte Variable des Typs Double hinzugefügt. Sowohl Integer als auch UInteger verfügen über standardmäßige Erweiterungskonvertierungen für Double, wodurch die Konvertierung in Double zur besten Wahl wird. Durch den Typrückschluss wird dem Datentyp Double die Schleifensteuerungsvariable i zugewiesen.
Dim stepVar As Double = 1
' Valid.
For i = m To n Step stepVar
' Loop processing.
Next
Fehler-ID: BC30983
So beheben Sie diesen Fehler
Konvertieren Sie eine der Variablen explizit in einen Typ, für den andere über eine Erweiterungskonvertierung verfügen, beispielsweise:
For i = m To CLng(n)
Verwenden Sie eine As-Klausel, um den Typ der Steuerelementvariablen anzugeben:
For i As Double = m To n
Siehe auch
Konzepte
Implizite und explizite Konvertierungen
Erweiternde und eingrenzende Konvertierungen