【发布时间】:2011-06-15 04:06:13
【问题描述】:
我想知道是否有办法不必重复相同的 if 构造,而是调用 StatusCheck()。成功时不能返回true。 有人知道这个问题的更好标题吗?
bool Enable()
{
if (!GetStatus(ref status)) { Trace.WriteLine("Error"); return false; }
// do stuff
if (!GetStatus(ref status)) { Trace.WriteLine("Error"); return false; }
// do more stuff
if (!GetStatus(ref status)) { Trace.WriteLine("Error"); return false; }
// do even more stuff
// 6 more times the above
return true;
}
【问题讨论】:
-
真实代码有6次相同的行?
-
我希望这并不代表实际代码。它调用同一个方法 9 次是有原因的吗?
-
真正的代码执行了许多方法,这些方法都依赖于前一个成功的方法。这些方法中的每一种都会更新状态。正在执行的方法不是我的代码。
-
@stijn 为什么是
ref status? -
不是我的选择,这就是我正在使用的 SDK 的工作方式。我必须调用一个方法,获取状态,根据新的状态我可以调用下一个方法或者我可以停止 Enable() 函数。
标签: c# .net if-statement return