C# 如果文本框为空,如何避免错误?

C# 如果文本框为空,如何避免错误?,c#,C#,我正在寻找一个解决方案,以避免一个或两个文本框都为空时出现错误?我已经测试过检查height和width的值是否为null,但是我只能在代码完成后执行,然后就要迟到了!?帮助是宝贵的!谢谢 // Get values from text boxes int height = Convert.ToInt32(txtInputA.Text); int width = Convert.ToInt32(txtInputB.Text); 以下是检查文本框是否为空的方法: int height; int

我正在寻找一个解决方案,以避免一个或两个文本框都为空时出现错误?我已经测试过检查height和width的值是否为null,但是我只能在代码完成后执行,然后就要迟到了!?帮助是宝贵的!谢谢

// Get values from text boxes
int height = Convert.ToInt32(txtInputA.Text);
int width = Convert.ToInt32(txtInputB.Text);

以下是检查
文本框是否为空的方法:

int height;
int width;
if (!string.IsNullOrWhiteSpace(txtInputA.Text) & !string.IsNullOrWhiteSpace(txtInputB.Text))
{
    // Get values from text boxes
    height = Convert.ToInt32(txtInputA.Text);
    width = Convert.ToInt32(txtInputB.Text);
}
else
{
    MessageBox.Show("Please Enter Height and Width!");
}

以下是检查
文本框是否为空的方法:

int height;
int width;
if (!string.IsNullOrWhiteSpace(txtInputA.Text) & !string.IsNullOrWhiteSpace(txtInputB.Text))
{
    // Get values from text boxes
    height = Convert.ToInt32(txtInputA.Text);
    width = Convert.ToInt32(txtInputB.Text);
}
else
{
    MessageBox.Show("Please Enter Height and Width!");
}

您可以这样做:

  string aText = string.IsNullOrEmpty(txtInputA.Text)?"0":txtInputA.Text;
  int height = Convert.ToInt32(aText);
或者你可以这样做:

  int height = 0;
  int.TryParse(txtInputA.Text, out height);

您可以这样做:

  string aText = string.IsNullOrEmpty(txtInputA.Text)?"0":txtInputA.Text;
  int height = Convert.ToInt32(aText);
或者你可以这样做:

  int height = 0;
  int.TryParse(txtInputA.Text, out height);

由于您试图将用户输入解析为整数,因此需要检查的不仅仅是空字符串。如果输入包含非数字字符怎么办?如果数字太大怎么办

验证所有这些的最简单方法是通过,它检查有效性并在单个调用中执行转换(如果有效):

int height, width;
if (int.TryParse(txtInputA.Text, out height) == false)
    // Alert: invalid height.
if (int.TryParse(txtInputB.Text, out width) == false)
    // Alert: invalid width.

编辑:通过注释的“警报”,我假设您将抛出一些异常,然后(通过调用方法)捕获并显示给用户。如果要直接从上述逻辑显示错误消息,请确保在转换失败后停止执行该方法(例如通过
return
语句)。

由于您试图将用户输入解析为整数,因此需要检查的不仅仅是空字符串。如果输入包含非数字字符怎么办?如果数字太大怎么办

验证所有这些的最简单方法是通过,它检查有效性并在单个调用中执行转换(如果有效):

int height, width;
if (int.TryParse(txtInputA.Text, out height) == false)
    // Alert: invalid height.
if (int.TryParse(txtInputB.Text, out width) == false)
    // Alert: invalid width.

编辑:通过注释的“警报”,我假设您将抛出一些异常,然后(通过调用方法)捕获并显示给用户。如果要直接从上述逻辑显示错误消息,请确保在转换失败后停止执行该方法(例如通过
return
语句)。

在警报状态下,我调用一个显示消息框的方法,然后在调用该方法后有一个中断。可以吗?如果您有一个封闭循环或switch语句,那么是的。在这种情况下,可以使用break,只要您想继续执行switch语句后面的任何代码,即使是在高度/宽度无效的情况下,我猜这样的中断也会留下所选情况下的其余代码,其中is语句是?然后它继续检查switch语句中是否存在其他情况?有更好的方法吗?如果包含逻辑的方法本身就是一个事件处理程序(比如,对于按钮的
点击
事件),那么我只会使用
返回语句停止执行它。(A
break;
将导致执行离开
开关{…}
块,但随后继续执行,这可能不是您想要的。)在警报状态下,我调用一个显示消息框的方法,然后在调用该方法后出现中断。可以吗?如果您有一个封闭循环或switch语句,那么是的。在这种情况下,可以使用break,只要您想继续执行switch语句后面的任何代码,即使是在高度/宽度无效的情况下,我猜这样的中断也会留下所选情况下的其余代码,其中is语句是?然后它继续检查switch语句中是否存在其他情况?有更好的方法吗?如果包含逻辑的方法本身就是一个事件处理程序(比如,对于按钮的
点击
事件),那么我只会使用
返回语句停止执行它。(A
break;
将导致执行离开
开关{…}
块,但随后继续执行,这可能不是您想要的。)@DownVoter代码有问题吗??请解释一下,这样我可以学到更多@代码有什么问题吗??请解释一下,这样我可以学到更多!!!