我正在尝试使用下面的代码段。
decimal preTestAir = decimal.Parse(AirPreTestTextBox.Value);
preTestAir
是decimal
,需要保持decimal
才能发送到数据库。这不能改变。我要做的是确定AirPreTestTextBox.Value
是否为空,如果是,请为decimal
分配0.00
值,然后将其分配给decimal
{{1 }}。只要文本框中有一些数字值,上面的代码就会很好用。如果文本框中没有值,该怎么办?该应用程序崩溃。如何确定preTestAir
是否为空,如果它在一行中,则分配一个值?这一行的原因是因为我有近100行代码需要以这种方式格式化。我尝试过使用像AirPreTestTextBox.Value
这样的运算符,这些运算符不会使用不可为空的小数。有人可以帮忙吗?任何和所有的帮助表示赞赏!
答案 0 :(得分:4)
您可以简单地使用条件运算符:
decimal preTestAir = AirPreTestTextBox.Value == null ?
0.0m :
decimal.Parse(AirPreTestTextBox.Value);
答案 1 :(得分:4)
null合并运算符(??)是你的朋友。使用
(AirPreTestTextBox.Value ?? "0.00")
答案 2 :(得分:4)
很容易用三元组。
decimal preTestAir = String.IsNullOrEmpty(AirPreTestTextBox.Value) ? 0 : decimal.Parse(AirPreTestTextBox.Value);
非常文本框不太可能包含null
字符串,它更可能是空字符串。
答案 3 :(得分:1)
只需使用try parse ....它将处理任何不可转换为十进制的
decimal preTestAir;
if(!deciaml.TryParse(AirPreTestTextBox.Value, out preTestAir))
{
// handle the fact it couldn't convert if you like...
}