我可以合并这两个if语句吗?

时间:2016-03-23 12:24:42

标签: c#

我有以下代码:

if (a || b)
{
    X();
}

if (a)
{
    Y();
}

我可以以某种方式合并这两个if语句吗?

3 个答案:

答案 0 :(得分:12)

这会更好,因为如果第一个循环退出因为a和b是假的,那么就不需要检查第二个循环 -

if(a||b)
{
    X();
    if(a)
    {
       Y();
    }
}

答案 1 :(得分:3)

如果你的Y()方法总是返回true,你可以写:

if(a || Y() || b) X();

但是你需要考虑到这个代码将由另一个人阅读,所以它应该易于阅读并解释其对另一个人的意义。所以最好的解决方案取决于a,b,X和Y的含义。以下所有内容都是正确的,具有不同的语义含义:

if(a || b)
{
    X();
    if(a) Y();
}

if(a)
{
    X();
    Y();
}
else if(b)
{
    Y();
}

答案 2 :(得分:0)

不是真的,也许你可以将值传递给X方法,如果它是A,它会调用Y只给你一个if语句。诚然,这是一个更清晰的处理方式