【发布时间】:2020-05-08 18:40:43
【问题描述】:
我使用 C# 在 WPF 中创建了一个应用程序,在此应用程序中,用户必须填写文本框,并通过单击按钮进行计算。 我已经为文本框只能是数字的部分做了故障保护:
private bool allFieldsAreOk()
{
return this.lengteBox.Text.All(char.IsDigit)
&& breedteBox.Text.All(char.IsDigit)
&& cilinderDrukSterkteBox.Text.All(char.IsDigit)
&& vloeigrensStaalBox.Text.All(char.IsDigit)
&& diameterWapeningBox.Text.All(char.IsDigit)
&& diameterBeugelBox.Text.All(char.IsDigit)
&& betondekkingTotWapeningBox.Text.All(char.IsDigit)
&& vloeigrensConstructieStaalBox.Text.All(char.IsDigit);
}
但每当文本框为空并且我按下计算按钮时,应用程序就会崩溃。有没有办法为此做一个故障保险?提前致谢!
【问题讨论】:
-
“崩溃”意味着代码的某些部分产生了异常。如果您在调试器下运行您的应用程序,您将看到它是哪个异常以及它发生的确切位置。
-
这是异常的描述:在 mscorlib.dll 中发生类型为“System.FormatException”的未处理异常输入字符串格式不正确。
-
顺便说一句:
All(char.IsDigit)将返回一个空字符串true,这可能不是您对代码的期望。 -
有没有办法让它在使用空字符串时返回false?
-
当然要加上
!string.IsNullOrEmpty(this.lengteBox.Text)等条件。