Döngü sınırları ve adım değişkeni aynı türe genişletilmediğinden '<variablename>' türü belirsiz

Kodunuz, aşağıdaki koşullar doğru olduğundan derleyicinin döngü denetim değişkeni için bir veri türü çıkaramadığı bir döngü içerir For...Next :

  • Döngü denetim değişkeninin veri türü bir As yan tümceyle belirtilmez.

  • Döngü sınırları ve adım değişkeni en az iki veri türü içerir.

  • Veri türleri arasında birden fazla olası dönüştürme vardır.

  • Adaylar arasında en iyi tür yoktur, bu nedenle döngü denetim değişkeni için tür seçimi belirsizdir.

Örneğin, aşağıdaki döngüde türünde bir döngü ve türünde Integer bir döngü sınırı UIntegervardır:

Dim m As Integer = 1  
Dim n As UInteger = 10  
' Not valid.  
' For i = m To n  
    ' Loop processing.  
' Next  

ve UIntegerarasında olası bir dönüştürme ve ile arasında IntegerInteger UInteger olası bir dönüştürme vardır, ancak her ikisi de dönüştürmeleri daraltıyor, bu nedenle en iyi seçenek de bu değil.

Sonraki örnekte türün Double üçüncü bir değişkeni eklenir. UInteger Hem hem de Integer için standart genişletme dönüştürmeleri Doublevardır ve bu da dönüştürmeyi en iyi seçime Double yapar. Veri türünü döngü denetim değişkenine i atayan tür Doubleçıkarımı.

Dim stepVar As Double = 1  
' Valid.  
For i = m To n Step stepVar  
    ' Loop processing.  
Next  

Hata Kimliği: BC30983

Bu hatayı düzeltmek için

  • Değişkenlerden birini açıkça diğerlerinin genişletme dönüştürmesine sahip olduğu bir türe dönüştürün, örneğin:

    For i = m To CLng(n)  
    
  • Denetim değişkeninin türünü belirtmek için bir As yan tümce kullanın:

    For i As Double = m To n
    

Ayrıca bkz.