我在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
答案 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)
这种方式从数组中返回一个值,而不是整个数组。