整理if语句

Ser*_*erk 2 c# if-statement operators

我做了一个小程序,用数学计算物理计算.

我有几个if语句做同样的事情,但对不同的变量,但它必须是它们好像一个TextBox是空的,int将是0.

这是一个例子:

if (firstForceTextBox.Text == "")
{
    firstForceInt = 0;
}
else
{
    firstForceInt = Convert.ToInt16(firstForceTextBox.Text);
}

if (secondForceTextBox.Text == "")
{
    secondForceInt = 0;
}
else
{
    secondForceInt = Convert.ToInt16(secondForceTextBox.Text);
}
Run Code Online (Sandbox Code Playgroud)

我想确保两者firstForceTextBox.Text == ""secondForceTextBox.Text == ""做同样的工作,但要确保一个人不干预其他人.

NoL*_*ing 7

澄清我在这里做的事情.

首先,我为两个int声明设置了一个默认值.

然后我int.TryParse用来确保如果你把"banana"放入文本框中代码不会中断.如果失败,它将只包含0,就像它应该的那样.

int firstForceInt = 0, secondForceInt = 0;
if(!int.TryParse(firstForceTextBox.Text, out firstForceInt))
{
    // Report error to GUI
}
if(!int.TryParse(secondForceTextBox.Text, out secondForceInt))
{
    // Report error to GUI
}
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,这会改变行为,使得不表示有效整数的值静默地评估为零,而OP的代码将抛出异常.但是,如果这是期望的行为,那么您的答案是最好的.此外,由于`out`参数是明确赋值的,因此变量初始值设定项是冗余的. (5认同)