我目前在文本框中进行错误检查时遇到了一些问题。它包含一个变量(称为价格)为Double。其目的是输入一个数字,然后单击按钮将其添加到显示在不同文本框中的运行总计中。
现在,使用以下命令检查文本框是否为空时出现错误:
!string.IsNullOrWhiteSpace(txtAddItem.Text)
但是,我不确定如何错误检查是否输入了数字以外的字符串或字符。任何想法都值得赞赏。
答案 0 :(得分:3)
方法1:RegEx
您应该尝试使用正则表达式。正则表达式(简称Regex)用于将字符串与模式进行匹配。例如,如果您只想允许整数:
tuple
Regex
类具有一个.IsMatch(string s)
方法,其中print(d)
是您要针对模式测试的字符串。
方法2:try-catch和Parse()
另一种方法(可能对初学者更友好)是try-catch块。 (我假设您的TextBox的名称为TextBox1,并且您将sum值存储在runningSum变量中。)
d[k] =
方法3:TryParse()
结合了Regex r = new Regex(@"^[0-9]+$")
和s
的更高级版本正在使用double.TryParse()
方法,该方法根据转换是否成功返回真/假值。
try {
double x = double.Parse(TextBox1.Text);
runningSum += x;
catch (ArgumentException ax) {
//handle if it is not a number in the TextBox
}
答案 1 :(得分:1)
如果该值需要为有效的double
,则可以使用'double.TryParse'。像这样:
if (double.TryParse(txtAddItem.Text, out double price) == false)
{
// Show error or clear textbox
}
else
{
// Value is valid, add to total
}
答案 2 :(得分:1)
您可以使用Double.TryParse()
double number;
if (Double.TryParse(txtAddItem.Text, out number)) {
Console.WriteLine("'{0}' is a valid double: {1}", value, number);
} else {
Console.WriteLine("Unable to parse '{0}' as a valid double", value);
}