2017-02-11 58 views
0

運行程序後,我顯示Power1的值爲零,爲什麼?Vb.Net值顯示下一個循環ctype爲零

這裏代碼;

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 
+0

正如一個側面評論,沒有一點要調用'「居奇」的ToString '。 ''Guc''已經是一個字符串了,所以在它上面調用'ToString()'沒有意義。 –

回答

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 
+0

非常感謝Vincent,工作。謝謝澄清。 – emraharslan

+0

@emraharslan:很高興聽到!歡迎來到堆棧溢出!請按下左側的複選標記/勾號,將我的答案標記爲已接受。 –