在文本框中添加数字
本文关键字:添加 数字 文本 | 更新日期: 2023-09-27 17:55:29
我有这段代码,它只有在所有文本框都包含值时才有效。但是如果文本框为空,则会出现错误。
Int32 Total = Int32.Parse((txtChild1.Text))
+ Int32.Parse(txtChild2.Text)
+ Int32.Parse(txtChild3.Text)
+ Int32.Parse(txtWife1.Text)
+ Int32.Parse(txtWife2.Text)
+ Int32.Parse(txtWife3.Text);
我知道它一定是像 IsNull 这样的函数,但对于整数值。有谁知道它是什么?
您正在寻找Int32.TryParse
:
Int32 val;
if (Int32.TryParse(txtChild1.Text, out val)){
// val is a valid integer.
}
你调用每个.Text
属性,然后将它们加在一起。您还可以制作扩展程序以使其更容易(如果您选择):
public static class NumericParsingExtender
{
public static Int32 ToInt32(this String input, Int32 defaultValue = 0)
{
if (String.IsNullOrEmpty(input)) return defaultValue;
Int32 val;
return Int32.TryParse(input, out val) ? val : defaultValue;
}
}
然后,在实践中:
Int32 total = txtChild1.Text.ToInt32() + txtChild2.Text.ToInt32()
+ txtChild3.Text.ToInt32() + /* ... */;
当然,还有一个例子
您可以使用Int32.TryParse
:
Int32 int1 = 0;
Int32.TryParse(txtChild1.Text, out int1);
//.... more int declarations
Int32 total = int1 + int2 + int3; //etc. etc.
TryParse
将尝试解析文本,如果失败,它将变量设置为 0。
您还可以内联一些逻辑(尽管这会使代码非常冗长和混乱):
Int32 Total = (txtChild1.Text.Length == 0 ? 0 : Int32.TryParse(txtChild1.Text)) + (txtChild2.Text.Length == 0 ? 0 : Int32.TryParse(txtChild2.Text)); //etc. etc.
Int32.TryParse
参考资料:http://msdn.microsoft.com/en-us/library/f02979c7.aspx
如果引用,则速记:http://msdn.microsoft.com/en-gb/library/ty67wk28(v=vs.110).aspx
您应该
在解析之前检查TextBox
是否为空,或者您可以使用TryParse
http://msdn.microsoft.com/en-us/library/f02979c7.aspx
Int32
是一种值类型。不可能是null
.或者当然有一个nullable types
但是嘿..
尝试使用Int32.Tryparse()
方法。
将数字的字符串表示形式转换为其 32 位有符号 整数。返回值指示操作是否 成功。
Int32.TryParse(txtChild1.Text, out val)
如果 s 转换成功,则返回 boolean
true
;否则,false
。
不能解析空字符串 "。在解析之前检查该框是否包含任何内容。
Textbox.text != ""
其他答案更快 事实上,tryparse 是最好的,因为它用更少的代码行做同样的事情!