BC42110: Der Typ der Variablen "<Variablename>" wird nicht abgeleitet, da er an ein Feld in einem eingeschlossenen Bereich gebunden ist.

Der Typ für die Variable "<Variablename>" wird nicht abgeleitet, da er an ein Feld in einem eingeschlossenen Bereich gebunden ist. Ändern Sie entweder den Namen von "<Variablename>", oder verwenden Sie den vollqualifizierten Namen (z. B. "Me.variablename" oder "MyBase.variablename").

Eine Schleifensteuerelementvariable in Ihrem Code hat denselben Namen wie ein Feld der Klasse oder eines anderen eingeschlossenen Bereichs. Da die Steuerelementvariable ohne Eine As Klausel verwendet wird, ist sie an das Feld im eingeschlossenen Bereich gebunden, und der Compiler erstellt keine neue Variable dafür oder leitet den Typ ab.

Im folgenden Beispiel Indexist die Steuerelementvariable in der For Anweisung an das Index Feld in der Customer Klasse gebunden. Der Compiler erstellt keine neue Variable für die Steuerelementvariable Index oder leitet den Typ ab.

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

Diese Meldung ist standardmäßig eine Warnung. Informationen zum Ausblenden von Warnungen oder zum Behandeln von Warnungen als Fehler finden Sie unter Konfigurieren von Warnungen in Visual Basic.

Fehler-ID: BC42110

So beheben Sie diese Warnung

  • Legen Sie die Variable des Schleifensteuerelements lokal fest, indem Sie ihren Namen in einen Bezeichner ändern, der nicht auch der Name eines Felds der Klasse ist.

    For I = 1 To 10
    
  • Verdeutlichen Sie, dass die Variable des Schleifensteuerelements eine Bindung an das Klassenfeld durch Präfix an den Variablennamen angibt Me. .

    For Me.Index = 1 To 10
    
  • Verwenden Sie As eine Klausel, um einen Typ für die Loop-Steuerelementvariable anzugeben, anstatt auf die lokale Typzuleitung zu vertrauen.

    For Index As Integer = 1 To 10
    

Beispiel

Der folgende Code zeigt das frühere Beispiel mit der ersten Korrektur.

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

Siehe auch