【问题标题】:Method with boolean return - if else vs. if带有布尔返回的方法 - if else vs. if
【发布时间】:2011-04-28 18:52:33
【问题描述】:

以下面两条语句为例:

if (booleanVariable)
{
  doSomething();

  return true;
}
else
{
  return false;
}

if (booleanVariable)
{
  doSomething();

  return true;
}

return false;

哪个更受欢迎?

它们最终都返回相同的结果。

有什么理由比另一个更好用吗?

【问题讨论】:

标签: methods boolean return if-statement


【解决方案1】:

就个人而言,我认为最干净的方法是

if (booleanVariable) {
    doSomething();
}
return booleanVariable;

将多余的返回移到 if 块之外,突出显示如果设置了变量,您所做的不同。

【讨论】:

  • 或者,只要 booleanVariable 设置为 true(可能默认为 false),立即调用 doSomething()。无论哪种方式,它的代码都更少。
【解决方案2】:

if...else 结构提供了更易读的代码,但如果你理解得很好,不想写那么多,那就做第二个吧:-)

【讨论】:

    【解决方案3】:

    我会以不同的方式做到这一点。因为,您的第一个代码解决方案可能会出错,至少在 c# 中是这样,因为您需要返回 if-else 范围之外的值。

    我会创建一个单独的 bool 变量,并根据您的 if 测试结果将其设置为 true/false

    bool test;
    
    if (booleanVariable)
    {
      doSomething();
    
      test = true;
    }
    
    return test;
    

    现在如果 if-test 失败,返回 bool 将保持默认为 false。

    【讨论】:

      猜你喜欢
      • 2016-03-18
      • 2014-12-19
      • 2023-02-07
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 2021-05-04
      • 2015-01-07
      • 2016-02-25
      相关资源
      最近更新 更多