【发布时间】:2014-12-20 19:35:16
【问题描述】:
我有一个文本框供最终用户提交电话号码。我希望能够在用户每次点击提交按钮时评估文本框。我的代码在最终用户第一次单击按钮时运行良好。如果他们必须修复文本框中的错误并再次单击按钮,则 TryParse 不会再次评估 Number 并且 Number 设置为 0。有人可以告诉我我多次使用 TryParse 吗?
string NumberLength = TextBoxPhoneNumber.Text;
int Number;
if (int.TryParse(NumberLength, out Number))
{
//I parsed the number out. Now lets get the length
NumberLength = Number.ToString(CultureInfo.InvariantCulture);
if (NumberLength.Length > 10)
{
LblInfo.Visible = true;
LblInfo.ForeColor = Color.Red;
LblInfo.Text = "Phone number can not be longer than 10 digits!";
boolIsValid = false;
}
else if (NumberLength.Length < 10)
{
LblInfo.Visible = true;
LblInfo.ForeColor = Color.Red;
LblInfo.Text = "Phone number can not be shorter than 10 digits!";
boolIsValid = false;
}
}
【问题讨论】:
-
电话号码不应转换为 int,因为 10 次中有 9 次以 0 开头,这将被删除。整数从不以前导零“0”开头,因此 10 将是 9 == 无效。号码 0612345678 将是 612345678 并且无效。
-
问题不在
TryParse使用上。 -
您能向我们展示更多驻留在其中的代码吗?
-
@Max 假设用户第一次在文本框'f3178593214'中输入一个字母,数字将返回一个 0。如果用户修复了这个字母,然后再次点击提交,那么返回的数字将是“3178593214”,但它永远不会再次评估,因此返回的数字是 0
-
错误必须在调用该函数的代码中。 TryParse 是正确的。
标签: c# asp.net visual-studio-2013 int tryparse