【问题标题】:Else vs new IF - Readability and PerformanceElse vs new IF - 可读性和性能
【发布时间】:2018-08-28 20:00:04
【问题描述】:

我正在使用 Visual Studio 在 C# 中工作,并且一直在检查我的代码以提高其可读性。我遇到了这个site,它列出了 15 个最佳实践。 #7 - 避免深度嵌套,它谈论 If 语句,并说不要使用 Else,而是使用另一个 If 语句。

这让我想知道两者之间指令的区别。使用额外的 If 语句会比仅使用 Else 花费更多的性能吗?

任何建议将不胜感激

【问题讨论】:

    标签: c# performance if-statement code-readability


    【解决方案1】:

    在这两种情况下评估的条件数量是相同的,唯一的区别是嵌套。两者之间的性能很可能没有明显差异,并且从可读性和最佳实践的角度来看,对于哪个“更好”存在不同的意见。

    • 在第一个示例中,对每个条件进行评估,直到返回 false,除非它们都是 true,在这种情况下,中间(最嵌套的)if 块将运行。

    • 在第二个示例中,计算每个条件的 ,直到返回 true,除非它们都是 false,在这种情况下,最后一个 if 块将运行。

    另一种编写测试方法以避免嵌套(取决于实际语言)的方法是将条件与'&&' operator 结合起来 ,它将按顺序评估它们,直到其中一个返回 false(如果它们都是 true,则 if 块中的代码将运行):

    // Combine the conditions with '&&', which will evaluate
    // evaluate them in order until one of them returns false
    if (is_writable($folder) &&
        $fp = fopen($file_path, 'w') &&
        $stuff = get_some_stuff() &&
        fwrite($fp,$stuff))
    {
        // ...
    }
    else
    {
        return false;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 2023-03-17
      • 1970-01-01
      • 2019-12-21
      相关资源
      最近更新 更多