Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Váš kód obsahuje smyčku For...Next , ve které kompilátor nemůže odvodit datový typ pro řídicí proměnnou smyčky, protože platí následující podmínky:
Datový typ řídicí proměnné smyčky není určen klauzulí
As.Hranice smyčky a proměnná kroku obsahují aspoň dva datové typy.
Mezi datovými typy existuje více možných převodů.
Mezi kandidáty není nejlepší typ, takže volba typu řídicí proměnné smyčky je nejednoznačný.
Například následující smyčka má jednu vazbu typu Integer a jednu smyčku UIntegertypu:
Dim m As Integer = 1
Dim n As UInteger = 10
' Not valid.
' For i = m To n
' Loop processing.
' Next
Existuje možný převod mezi a UIntegera možným převodem mezi Integer UInteger a Integer, ale oba jsou zužující převody, takže ani jeden z nich není nejlepší volbou.
V dalším příkladu se přidá třetí proměnná typu Double . Oba Integer a UInteger mají standardní rozšiřující převody na Double, což dělá převod na Double nejlepší volbu. Odvození typu přiřadí proměnné smyčky i datový typ Double.
Dim stepVar As Double = 1
' Valid.
For i = m To n Step stepVar
' Loop processing.
Next
ID chyby: BC30983
Oprava této chyby
Explicitně převeďte jednu z proměnných na typ, na který ostatní mají rozšiřující převod, například:
For i = m To CLng(n)AsK určení typu řídicí proměnné použijte klauzuli:For i As Double = m To n