如果一个或两个文本框为空,我正在寻找一种避免错误的解决方案?我已经测试了检查height和width的值是否为null,但是我只能在代码之后进行,然后为时已晚!?帮助是preciated!谢谢!
// Get values from text boxes
int height = Convert.ToInt32(txtInputA.Text);
int width = Convert.ToInt32(txtInputB.Text);
如果一个或两个文本框为空,我正在寻找一种避免错误的解决方案?我已经测试了检查height和width的值是否为null,但是我只能在代码之后进行,然后为时已晚!?帮助是preciated!谢谢!
// Get values from text boxes
int height = Convert.ToInt32(txtInputA.Text);
int width = Convert.ToInt32(txtInputB.Text);
由于您试图将用户输入解析为整数,因此您需要检查的不仅仅是空字符串。如果输入包含非数字字符怎么办?如果数量太大怎么办?
验证所有这些的最简单方法是通过Int32.TryParse
,它检查有效性并在一次调用中执行转换(如果有效):
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
转换不成功后停止执行该方法(例如通过语句)。
你可以这样做:
string aText = string.IsNullOrEmpty(txtInputA.Text)?"0":txtInputA.Text;
int height = Convert.ToInt32(aText);
或者你可以这样做:
int height = 0;
int.TryParse(txtInputA.Text, out height);
这是检查是否TextBox
不是空的方法:
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!");
}