我收到警告:
严重级代码描述项目文件行抑制状态 警告BC42322转换'字符串'时可能会发生运行时错误。到了IFormatProvider'。
我的代码中有两个.ToString("N0")
在同一个Sub中。我可以在同一个子中没有2吗?他们去不同的标签,但我也是VB的新手,所以请不要判断。谢谢!
If Integer.TryParse(input, infantry) Then
Dim hpai = Integer.Parse(frmMainGame.lblHPAI.Text, Globalization.NumberStyles.AllowThousands, Globalization.CultureInfo.InvariantCulture)
frmMainGame.lblHPAI.Text = (hpai - infantry * 2).ToString("N0")
frmMainGame.lblInfantryNumberPlayer.Text -= input.ToString("N0") '<---- One that gets the warning
Else
' handle not an int inputted case
End If
答案 0 :(得分:2)
让我们来看看这一行:
frmMainGame.lblInfantryNumberPlayer.Text -= input.ToString("N0")
您正在将-=
运算符应用于 STRINGS 。此运算符对字符串没有意义。您是否尝试应用某种反向连接?从标签文本中删除input
出现的任何内容?该代码根本没有意义。
如果您实际上尝试进行数字操作,则需要实际使用数字 ...将标签字符串转换为整数,而不是将整数转换为字符串。
If Integer.TryParse(input, infantry) Then
Dim hpai = Integer.Parse(frmMainGame.lblHPAI.Text, Globalization.NumberStyles.AllowThousands, Globalization.CultureInfo.InvariantCulture)
frmMainGame.lblHPAI.Text = (hpai - infantry * 2).ToString("N0")
Dim numPlayer = Integer.Parse(frmMainGame.lblInfantryNumberPlayer.Text)
frmMainGame.lblInfantryNumberPlayer.Text = (numplayer - input).ToString("N0") '<---- One that gets the warning
Else
' handle not an int inputted case
End If