2016-06-16 22 views
0
Dim numbers(9) As Integer 
Dim Card As String 
Dim CardInfo As Integer 
Const ListSize = 9 

Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click 
    listOutput.Items.Clear() 

    'populate the numbers array 
    For i As Integer = 0 To 9 
     numbers(i) = txtValue.Text 
     Card = txtCard.Text 

     CardInfo = numbers & Card 
     listOutput.Items.Add(CardInfo) 
    Next 
    For i = 0 To ListSize 
    Next i 
    txtSearchValue.Focus() 
End Sub 
+6

打開選項嚴格。字符串和數字之間有區別,數組和字符串之間也有區別。如果數字是「{1,2,3,4,5}」,「卡片」是「foo」,那麼'數字和卡片'的預期結果是什麼? – Plutonix

+0

我想要發生的問題是foo將被分配給1,並且輸入的下一個名稱和數字將以相同的方式加入 –

+0

因此...您會得到「foo1」,「foo2」等。只要'數字&i.ToString()' –

回答

0

你的問題是在這裏:

numbers(i) = txtValue.Text 

Numbers整數數組txtValue.Text字符串

您無法將字符串保存爲整數。我的猜測是你想要那個字符串的值。如果它的一個「23」,你想要數字23.爲此,你需要解析。

numbers(i) = Integer.Parse(txtValue.Text) 

這會將字符串的值保存到int中。

重要:

如果txtValue有沒有有效的文本,東西是不是一個數字,你會拋出一個exeption。我們不希望這樣。因此,我們可以使用的TryParse:

Integer.TryParse(txtValue.Text,numbers(i)) 

如果您確信它總是對txtValue一個有效的數字,你可以使用非標準解析,如果沒有,使用的TryParse

0

首先,它是不抱怨一個String + Integer。它抱怨String + Integer()。該代碼中與&運算符一起使用的numbers變量是數組,它不僅與字符串連接。下標缺失。

但可以大大降低所有的代碼反正:

Const ListSize = 9 
Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click 
    Dim items = Enumerable.Range(0, ListSize).Select(Function (i) String.Format("{0} {1}", txtCard.Text, i)).ToArray() 
    listOutput.Items.Clear() 
    listOutput.Items.AddRange(items) 
    txtSearchValue.Focus() 
End Sub 
相關問題