Vb.Net值为下一个循环ctype显示零

时间:2017-02-11 08:45:02

标签: vb.net for-loop

运行程序后,我显示Power1的值为零,为什么?

这里是代码;

Dim Guc1....Guc59 as decimal

Guc1=Val(TextBox5.Text)*Val(Textbox98.Text)
  . 
  .
  .
Guc59=Val(TextBox42.Text)*Val(Textbox12.Text)

For i = 1 To 59 Step 2


        Dim txt As TextBox = CType(TabControlPanel1.Controls("TextBoxX" & i), TextBox)
        Dim guc As Decimal = CType(("Guc".ToString & i), Decimal)

        Hız1 = Val(txt.Text) * RollinRadius * 3.14 * 3.6 / (Val(TextBox1.Text) * Val(TextBox33.Text) * 30)


        Power1 = guc * 3.14 / (30 * 1000) *2  *3)

        ListBox2.Items.Add(Power1)


    Next

1 个答案:

答案 0 :(得分:0)

Power1为零,因为guc目前始终为零。您无法按照自己的名义访问变量,就像您尝试做的那样。 "Guc" & i只会生成一个普通字符串,由于Guc不是数字,因此无法转换。通过名称动态访问变量的唯一方法是使用Reflection

但是,您尝试实现目标的最佳方式是使用List(Of T)Array

Dim Guc As Decimal = New Decimal(59 - 1) {} '59 - 1 = 59 items.

...

Dim gucx As Decimal = Guc(i - 1)

...

Power1 = gucx * 3.14 / (30 * 1000) * 2 * 3