【发布时间】:2014-08-06 19:56:02
【问题描述】:
我正在验证用户输入的文本,输入到文本框中,以过滤掉非数字,然后将 >= /
int classRPM;
int fanRPM;
string actualdata = string.Empty;
char[] entereddata = txfanrpm.Text.ToCharArray();
foreach (char aChar in entereddata.AsEnumerable())
{
if (Char.IsDigit(aChar))
{
actualdata = actualdata + aChar;
using (Fanrpm ds = new Fanrpm(cbdesigntype.SelectedValue.ToString(), cbfansize.SelectedValue.ToString(), cbfanclass.SelectedValue.ToString()))
{
DataTable dt = ds.dataset.Tables[0];
classRPM = Convert.ToInt32(dt.Rows[0].Field<string>("ClassRPM"));
// MessageBox.Show(aChar.ToString());
fanRPM = Convert.ToInt32(actualdata);
if (fanRPM >= classRPM)
{
MessageBox.Show("hi");
}
else if (fanRPM < classRPM)
{
MessageBox.Show("Hide");
}
}
}
else
{
MessageBox.Show(aChar + " is not numeric");
actualdata.Replace(aChar, ' ');
actualdata.Trim();
}
}
txfanrpm.Text = actualdata;
【问题讨论】:
-
“继续跳过我的 if /else 语句”是什么意思?
-
因为在程序中没有单步执行它来显示 hi 的消息框或隐藏。 IT 确实会执行第一个和最后一个 if/else,因为任何非数字都会提示 * is not numeric else。
-
您是否将此代码包装在异常处理程序中?你是在单步执行代码吗?当你有你的
MessageBox.Show(aChar.ToString());代码时,你有没有看到一条消息? -
使用调试器。在 for 行 (F9) 上设置断点,然后使用 F10 单步执行您的代码。请务必检查 DEBUG->Exceptions->Common Language Runtime Exceptions for User Unhandled。当错误发生时,您应该能够在异常消息属性中看到原因。
-
那段代码 (MessageBox.Show(aChar.ToString())) 是一个错误,它被取消注释,而它被取消注释它什么也没做,也被跳过了,还没有错误处理.