Bagikan melalui


Jenis '<variablename>' tidak jelas karena batas perulangan dan variabel langkah tidak melebar ke jenis yang sama

Kode Anda berisi perulangan For...Next di mana kompilator tidak dapat menyimpulkan jenis data untuk variabel kontrol perulangan karena kondisi berikut ini benar:

  • Jenis data variabel kontrol perulangan tidak ditentukan dengan klausul As.

  • Batas perulangan dan variabel langkah berisi minimal dua jenis data.

  • Lebih dari satu kemungkinan konversi ada di antara jenis data.

  • Tidak ada jenis terbaik di antara kandidat, sehingga pilihan jenis untuk variabel kontrol perulangan ambigu.

Misalnya, perulangan berikut memiliki satu batas perulangan jenis Integer dan satu batas perulangan jenis UInteger:

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

Ada kemungkinan konversi antara Integer dan UInteger, dan kemungkinan konversi antara UInteger dan Integer, tetapi keduanya mempersempit konversi sehingga tidak ada pilihan terbaik.

Dalam contoh berikutnya, variabel ketiga jenis Double akan ditambahkan. Integer dan UInteger memiliki konversi pelebaran standar ke Double, yang membuat konversi ke Double adalah pilihan terbaik. Ketik inferensi yang ditetapkan untuk mengulang variabel kontrol i jenis data Double.

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

ID Kesalahan: BC30983

Untuk memperbaiki kesalahan ini

  • Mengonversi salah satu variabel secara eksplisit ke tipe yang lainnya memiliki konversi pelebaran, misalnya:

    For i = m To CLng(n)  
    
  • Gunakan klausul As klausa untuk menentukan jenis variabel kontrol:

    For i As Double = m To n
    

Lihat juga