C#中的字符串、小数和Null

本文关键字:小数 Null 字符串 | 更新日期: 2023-09-27 18:29:13

下面是我正在尝试使用的代码片段。

decimal preTestAir = decimal.Parse(AirPreTestTextBox.Value);

CCD_ 1是CCD_ 2并且需要保持为CCD_。这是不能改变的。我要做的是确定AirPreTestTextBox.Value是否为空,如果为空,则为其分配0.00decimal值,然后将其分配给decimal preTestAir。只要文本框中有一些数值,上面的代码就可以很好地工作。如果文本框中没有值怎么办?应用程序崩溃。如何确定AirPreTestTextBox.Value是否为空,并在一行中指定值?之所以只有一行,是因为我有将近100行代码需要以这种方式格式化。我尝试过使用像preTestAir0这样的运算符,它不适用于非null类型的小数。有人能帮忙吗?感谢您的帮助!

C#中的字符串、小数和Null

使用三进制就足够简单了。

decimal preTestAir = String.IsNullOrEmpty(AirPreTestTextBox.Value) ? 0 : decimal.Parse(AirPreTestTextBox.Value);

文本框不太可能包含null字符串,更可能是空的。

您可以简单地使用条件运算符:

decimal preTestAir = AirPreTestTextBox.Value == null ? 
                     0.0m :
                     decimal.Parse(AirPreTestTextBox.Value);

空合并运算符(??)是您的朋友。使用

(AirPreTestTextBox.Value ?? "0.00")

只需使用try-parse。。。。它将处理任何不可转换为十进制的

decimal preTestAir;
if(!deciaml.TryParse(AirPreTestTextBox.Value, out preTestAir))
{
  // handle the fact it couldn't convert if you like...
}