如果/ return或if / return / else,C#会更好吗?

时间:2015-07-29 11:57:41

标签: c# performance function

我正在编写一些必须检查值的非常长的函数,如果找到了特定的模式,则返回true。我执行if检查并在一个条件失败后返回false,从不使用此示例中的else部分

if (a < 0) {
    return false;
}
// code
if (b < 0) {
    return false;
}
// code
if (a + b / c > d) {
    return false;
}
// code

这是正确的做法还是我应该使用else?性能有什么不同,还是仅仅是可读性问题?

if (a < 0) {
    return false;
} else {
    // code
    if (b < 0) {
        return false;
    } else {
        // code
        if (a + b / c > d) {
            return false;
        } else {
            // code
        }
    }
}

3 个答案:

答案 0 :(得分:2)

我认为您提供的示例仅用于演示目的。但是,一般来说,只是可读性问题,编译器进行优化时没有性能差异。我个人更喜欢你回归的方式。如果你有更长的逻辑,那么理解某些无效的场景会更具可读性。并且比嵌套的if / else块更干净。只是我的意见。

答案 1 :(得分:-1)

你的初始如果没有其他是非常正确的但是 这个:可读性和效率都很短

if (a < 0 && b < 0 && (a + b)/ c > d)
 {
    return false;
} else
{

答案 2 :(得分:-1)

如果不需要其他,那么我将使用下面的代码。如果需要,那么我会更喜欢DeshDeep提到的答案。

我更喜欢,因为代码行数较少,但这取决于个人选择。

if (a < 0 || b <0 || (a + b / c > d)) {
    return false;
}