无法将字符串转换为'Double'类型

时间:2013-11-26 15:46:03

标签: vb.net winforms

我开始编写代码并学习VB.NET。到目前为止,它一帆风顺。

直到我尝试运行程序。

我所做的是用我熟悉和理解的语言写了一个刽子手游戏。在C#中,代码完美无缺。一旦我完成了这个完成点,我可以说没有其他任何我想改变的地方,我开始将它手工转换为VB.NET。

到目前为止,没问题。但我刚刚完成转换,现在我遇到了障碍。

在窗口的底部是一个状态栏,告诉你你在哪个拼图集以及你正在使用哪个拼图。选择拼图时,这行代码会引发错误:

stsPuzzles.Text = "Puzzle: " + regionPuzzles + "/" + maxPuzzles

错误是:

Conversion from string "Puzzle" to type 'Double' is not valid.

当然,简单的答案就是把这个机制拿出来,但至少为了测试目的,我喜欢它在那里,所以我可以确保正确的谜题是正确的。

有没有办法可以解决这个问题,所以我的两个整数变量可以在字符串中?或者是否有一个解决方法,我至少可以使用足够长的时间来测试其余的测试过程?

我希望找到一种方法来解决这个问题,因为还有其他地方,例如显示统计数据,需要能够做到这一点。

1 个答案:

答案 0 :(得分:7)

现有代码的直接修复是这样的:

stsPuzzles.Text = "Puzzle: " + CStr(regionPuzzles) + "/" + CStr(maxPuzzles)

或者这个:

stsPuzzles.Text = "Puzzle: " & regionPuzzles & "/" & maxPuzzles

在VB.Net中,&而不是+是连接运算符。 +通常仍会有效,但当操作数为数字时,它也会倾向于认为您需要算术。

但在这种情况下我真正要做的是:

stsPuzzles.Text = String.Format("Puzzle: {0}/{1}", regionPuzzles, maxPuzzles)

或使用Visual Studio 2015或更高版本:

stsPuzzles.Text = $"Puzzle: {regionPuzzles}/{maxPuzzles}"