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
Messaggio di errore
Inferenza del tipo per la variabile '<nomevariabile>' non riuscita perché è associato a un campo nell'ambito che lo contiene. Cambiare il nome di '<nomevariabile>' o utilizzare il nome completo, ad esempio 'Me.nomevariabile' o 'MyBase.nomevariabile'.
The type for variable '<variablename>' will not be inferred because it is bound to a field in an enclosing scope. Either change the name of '<variablename>', or use the fully qualified name (for example, 'Me.variablename' or 'MyBase.variablename').
Una variabile di controllo del ciclo nel codice ha lo stesso nome di un campo della classe e di altro ambito che lo contiene. Poiché la variabile di controllo è utilizzata senza una clausola As, è associata al campo nell'ambito che la contiene e il compilatore non è in grado di creare per essa una nuova variabile né di dedurne il tipo.
Nell'esempio riportato di seguito, Index, la variabile di controllo 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 ulteriori informazioni su come nascondere gli avvisi o considerarli come errori, vedere Configurazione degli avvisi in Visual Basic.
ID errore: BC42110
Se viene visualizzato questo avvertimento
Rendere locale la variabile di controllo del ciclo impostandone il nome su un identificatore che non sia anche il nome di un campo della classe.
For I = 1 To 10Chiarire che la variabile di controllo del ciclo è associata al campo della classe inserendo il prefisso Me. davanti al nome della variabile.
For Me.Index = 1 To 10Anziché affidarsi all'inferenza dei tipi locali, utilizzare la clausola As per specificare un tipo per la variabile di controllo del ciclo.
For Index As Integer = 1 To 10
Esempio
Nel codice riportato di seguito viene illustrato l'esempio precedente a cui è stata applicata la prima correzione.
Class Customer
' The class has a field named Index.
Private Index As Integer
Sub Main()
' The following line will raise this warning.
For I = 1 To 10
' ...
Next
End Sub
End Class
Vedere anche
Attività
Procedura: fare riferimento all'istanza corrente di un oggetto
Concetti
Riferimenti
Istruzione For Each...Next (Visual Basic)