System.Int32 []显示在Visual Basic中的文本框中

时间:2014-07-17 17:55:09

标签: vb.net visual-studio-2013

我在Visual Basic中工作。我通过函数将整数传递给标签但是标签显示它显示的值System.Int32[]并且没有错误,当您单击“完成”时它保存并且保存文件显示正确的数字。如果您能给我一些建议和帮助,我们将不胜感激,谢谢

'function for adding 1 point to your selected level.
Private Function SkillPoints(IntSkill)
        'checks if you have enough level points
        If IntLevel > 0 Then
            'adds 1 point to the selected skill and minuses 1 from Intlevel
            Intskillpoints(IntSkill) += 1
            IntLevel -= 1
            LblLvlPoints.Text = IntLevel
        Else
            MsgBox("You have run out of skill points.")
        End If
        ' returns the value to be shown in the label
        Return Intskillpoints
    End Function


    Private Sub BtnAtkPlus_Click(sender As Object, e As EventArgs) Handles BtnAtkPlus.Click
    'when you click the button it sets the lbl to the result of the function.
        LblAttackPoints.Text = SkillPoints(0).ToString
    End Sub

2 个答案:

答案 0 :(得分:4)

如果您使用Option Strict On,则会指出您遇到的一些编码错误。

您需要声明传递给函数的变量的类型及其返回值:

Private Function SkillPoints(IntSkill As Integer) As Integer()

您应该将Integer转换为String以将其用作Text:

LblLvlPoints.Text = IntLevel.ToString()

P.S。它是“Visual Basic”,而不是“Visual Basics”。

P.P.S。标签显示System.Int32[]的原因是,您在某个数组上使用了.ToString()(它使用[]代替()来显示它是一个数组)所以你需要追踪你如何给它一个数组而不是一个标量。当您完成启用Option Strict On为您指出的所有更正时,可能会解决该问题。

答案 1 :(得分:0)

对于遇到此问题的任何人,您很可能错过了数组索引。在我的情况下,我没有返回数组索引,但实际的数组如下:

Return Intskillpoints

这种方式返回整个数组。 但它应该是:

Return Intskillpoints(IntSkill)

这种方式从数组中返回一个值,而不是整个数组。