【问题标题】: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】:
在这两种情况下评估的条件数量是相同的,唯一的区别是嵌套。两者之间的性能很可能没有明显差异,并且从可读性和最佳实践的角度来看,对于哪个“更好”存在不同的意见。
另一种编写测试方法以避免嵌套(取决于实际语言)的方法是将条件与'&&' 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;
}