Aracılığıyla paylaş


BC42110: '<variablename>' değişkeninin türü, kapsayan kapsamdaki bir alana bağlı olduğundan çıkarılmaz

'<variablename>' değişkeninin türü, kapsayan kapsamdaki bir alana bağlı olduğundan çıkarılmaz. '<variablename>' adını değiştirin veya tam adı kullanın (örneğin, 'Me.variablename' veya 'MyBase.variablename').

Kodunuzdaki bir döngü denetim değişkeni, sınıfın veya diğer kapsayan kapsamın alanıyla aynı ada sahiptir. Denetim değişkeni yan As tümcesi olmadan kullanıldığından, kapsayan kapsamdaki alana bağlıdır ve derleyici bunun için yeni bir değişken oluşturmaz veya türünü çıkarmaz.

Aşağıdaki örnekte, Indexdeyimindeki For denetim değişkeni sınıfındaki Index alana Customer bağlıdır. Derleyici, denetim değişkeni için yeni bir değişken Index oluşturmaz veya türünü çıkarmaz.

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

Varsayılan olarak, bu ileti bir uyarıdır. Uyarıları gizleme veya uyarıları hata olarak işleme hakkında bilgi için bkz . Visual Basic'te Uyarıları Yapılandırma.

Hata Kimliği: BC42110

Bu uyarıyı gidermek için

  • Döngü denetimi değişkenini, adını aynı zamanda sınıfın bir alanının adı olmayan bir tanımlayıcı olarak değiştirerek yerel yapın.

    For I = 1 To 10
    
  • Değişken adına ön ek Me. ekleyerek döngü denetimi değişkeninin sınıf alanına bağlandığını netleştirin.

    For Me.Index = 1 To 10
    
  • Yerel tür çıkarımına güvenmek yerine, döngü denetim değişkeni için bir tür belirtmek üzere bir yan tümcesi kullanın As .

    For Index As Integer = 1 To 10
    

Örnek

Aşağıdaki kod, ilk düzeltmenin olduğu önceki örneği gösterir.

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

Ayrıca bkz.