【发布时间】:2016-06-22 03:18:29
【问题描述】:
嘿,我刚刚遇到一个函数,我不知道哪个更好?
private static bool IsEqual(TypeABC output, TypeABC input)
{
if( conditions....)
{
return true;
}
return false;
}
或
private static bool IsEqual(TypeABC output, TypeABC input)
{
bool isEqual = false;
if( conditions....)
{
isEqual = true;
}
return isEqual;
}
两者都执行相同的操作,但
我想从任何角度了解编码标准、性能还是垃圾收集。以上哪一项更好,为什么?
或者如果它太笼统而无法回答,那么每个代码相对于另一个的优点/缺点。
还建议我应该为这个问题添加一些标签。
【问题讨论】:
-
“哪个更好” - 这不是解决此类问题的方法。列出这两种方法的优缺点,并确定您认为重要的优缺点。然后你可以选择哪一个对你“更好”。做更多研究的关键词:single entry, single exit 和 fail fast,另见C# return variables。
-
我认为 single entry, single exit 是像 Pascal 这样的过程编程语言遗留下来的,在这种语言中,很难控制何时在函数/方法中返回结果。我在这里en.wikibooks.org/wiki/Pascal_Programming/Syntax_and_functions 找到了一些 Pascal 函数,这很奇怪(IMO),因为没有 return 关键字来停止该函数。