C# 如何预防';System.FormatException';发生在mscorlib.dll';用一个空的文本框?

C# 如何预防';System.FormatException';发生在mscorlib.dll';用一个空的文本框?,c#,.net,winforms,C#,.net,Winforms,我刚刚编写了一个非常简单的程序来帮助我计算每顿饭的碳水化合物量(我患有糖尿病),我的问题是当我的一个文本框为空时,我会得到一个系统。FormatException 我怎样才能防止这种情况发生 我的代码(使用由3个文本框组成的表单;其中2个需要我输入,第三个显示简单公式的结果) 您可以验证文本框中的文本 if (string.IsNullOrWhiteSpace(tbCCG.Text)) tbCCG.Text = "0"; if (string.IsNullOrWhiteSpace(tb

我刚刚编写了一个非常简单的程序来帮助我计算每顿饭的碳水化合物量(我患有糖尿病),我的问题是当我的一个文本框为空时,我会得到一个
系统。FormatException

我怎样才能防止这种情况发生

我的代码(使用由3个文本框组成的表单;其中2个需要我输入,第三个显示简单公式的结果)


您可以验证文本框中的文本

if (string.IsNullOrWhiteSpace(tbCCG.Text))
    tbCCG.Text = "0";

if (string.IsNullOrWhiteSpace(tbCTG.Text))
    tbCTG.Text = "0";

decimal carbsPerC = Convert.ToDecimal(tbCCG.Text);
decimal totCarbs = Convert.ToDecimal(tbCTG.Text);

但是如果您的文本框没有任何限制,请尝试使用
decimal.TryParse

那么
如果(!string.IsNullOrEmpty(tbCCG.Text)){…}
?当然,如果有人键入“ABC”,我们将再次返回FormatExceptionies,您也可以使用
decimal.TryParse
方法@史蒂文:也许你应该扩展你的答案,因为它不能解决用户输入错误的问题。我在你发表评论前14秒编辑了这个问题:D@Steve
if (string.IsNullOrWhiteSpace(tbCCG.Text))
    tbCCG.Text = "0";

if (string.IsNullOrWhiteSpace(tbCTG.Text))
    tbCTG.Text = "0";

decimal carbsPerC = Convert.ToDecimal(tbCCG.Text);
decimal totCarbs = Convert.ToDecimal(tbCTG.Text);