【发布时间】:2015-06-19 12:07:45
【问题描述】:
应该(希望)是一个简单的问题...
我有一个名为 updateChart() 的函数,程序从文本框 (txtBP) 获取值输入,并尝试将其转换为整数以存储在局部变量 (latestReading) 中并用作图形坐标.
我最初是这样尝试的:
int latestReading = Convert.ToInt32(txtBP.Text);
这导致了一个运行时错误,通知我“输入字符串的格式不正确”。经过一些研究,我了解到要将文本从文本框转换为 int,您应该使用 TryParse 方法。我尝试了这种方法:
int x = 0;
int latestReading = 0;
if (Int32.TryParse(txtBP.Text, out x))
{
latestReading = Convert.ToInt32(txtBP.Text);
}
else
{
MessageBox.Show("Invalid Reading!");
}
我确信这会起作用,但是在进行测试时,即使我自己在文本框中输入值 1 也会导致它跳转到语句的“else”部分。我已经阅读了有关堆栈溢出的信息,但找不到类似的情况。
【问题讨论】:
-
你能调试每一行代码,并检查txtBP.Text的值是什么,当它通过你的条件?
-
您是否调试过您的代码并看到您的
txtBP.Text是真的1? -
其实
Convert.ToInt32(txtBP.Text)和TryParse是不需要的。如果成功,您可以直接使用x。请注意,如果txtBP.Text.Trim()可以包含前导或尾随空格,则应使用它。 -
尝试在
if (Int32.TryParse(txtBP.Text, out x))之前添加MessageBox.Show(txtBP.Text); -
将您的代码
latestReading = Convert.ToInt32(txtBP.Text);更改为latestReading = x;。 (我想这也是 Tim 的意思)。
标签: c# type-conversion tryparse