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.
Inferenza del tipo per la variabile "<variablename>" non riuscita perché è associato a un campo nell'ambito che lo contiene. Cambiare il nome di "<variablename>" o utilizzare il nome completo, ad esempio "Me.variablename" o "MyBase.variablename".
Una variabile di controllo ciclo nel codice ha lo stesso nome di un campo della classe o di un altro ambito di inclusione. Poiché la variabile di controllo viene usata senza una clausola As
, viene associata al campo nell'ambito di inclusione e il compilatore non crea una nuova variabile per essa né ne deduce il tipo.
Nell'esempio seguente la variabile di controllo Index
nell'istruzione For
è associata al campo Index
nella classe Customer
. Il compilatore non crea una nuova variabile per la variabile di controllo Index
né ne deduce il tipo.
Class Customer
' The class has a field named Index.
Private Index As Integer
Sub Main()
' The following line will raise this warning.
For Index = 1 To 10
' ...
Next
End Sub
End Class
Per impostazione predefinita, si tratta di un messaggio di avviso. Per informazioni su come nascondere gli avvisi o considerarli come errori, vedere Configuring Warnings in Visual Basic.
ID errore: BC42110
Per risolvere questo avviso
Rendere locale la variabile di controllo del ciclo modificandone il nome in un identificatore che non sia anche il nome di un campo della classe.
For I = 1 To 10
Chiarire che la variabile di controllo del ciclo viene associata al campo della classe anteponendo il prefisso
Me.
al nome della variabile.For Me.Index = 1 To 10
Anziché basarsi sull'inferenza del tipo locale, usare una clausola
As
per specificare un tipo per la variabile di controllo del ciclo.For Index As Integer = 1 To 10
Esempio
Il codice seguente illustra l'esempio precedente con la prima correzione sul posto.
Class Customer
' The class has a field named Index.
Private Index As Integer
Sub Main()
For I = 1 To 10
' ...
Next
End Sub
End Class