Impossibile dedurre il tipo di '<nomevariabile>' perché i limiti del ciclo e la clausola STEP non eseguono la conversione nello stesso tipo

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 = 1
    

    oppure

    Dim stepVar As Integer = 1
    
  • Utilizzare 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

Inferenza dei tipi locali

Conversioni di ampliamento e restrizione

Riferimenti

Istruzione For...Next (Visual Basic)

Istruzione Option Infer

Funzioni di conversione del tipo

Funzione Val