Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Type of '<variablename>' cannot be inferred because the loop bounds and the step variable do not widen to the same type
È stato scritto un ciclo For...Next nel quale il compilatore non è in grado di dedurre un tipo di dati per la variabile di controllo del ciclo poiché si verificano le seguenti condizioni:
Il tipo di dati della variabile di controllo del ciclo non è specificato con una clausola As.
I limiti del ciclo e la clausola dell'istruzione contengono almeno due tipi di dati.
Non esiste alcuna conversione standard tra i tipi di dati.
Pertanto, il compilatore non è in grado di dedurre il tipo di dati della variabile di controllo di un ciclo.
Nell'esempio seguente, la clausola dell'istruzione è un carattere e i limiti del ciclo sono entrambi numeri interi. Poiché non vi è conversione standard tra caratteri e numeri interi, viene segnalato questo errore.
Dim stepVar = "1"c
Dim m = 0
Dim n = 20
' Not valid.
' For i = 1 To 10 Step stepVar
' Loop processing
' Next
ID errore: BC30982
Per correggere l'errore
Modificare i tipi dei limiti del ciclo e della clausola dell'istruzione secondo necessità, così che almeno uno di essi sia un tipo al quale gli altri possano essere convertiti. Nell'esempio precedente modificare il tipo di stepVar con Integer.
Dim stepVar = 1oppure
Dim stepVar As Integer = 1Utilizzare le funzioni di conversione esplicite per convertire i limiti del ciclo e la clausola dell'istruzione nei tipi appropriati. Nell'esempio precedente, applicare la funzione Val a stepVar.
For i = 1 To 10 Step Val(stepVar) ' Loop processing Next
Vedere anche
Concetti
Conversioni implicite ed esplicite
Conversioni di ampliamento e restrizione
Riferimenti
Istruzione For...Next (Visual Basic)