我想知道是否有办法不必重复相同的事情如果施工而是调用一个状态检查()。成功后无法返回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;
}
您可以创建一个CheckStatus()
如果状态无效,则抛出异常的方法,然后在您的Enable()
method:
public void CheckStatus(int status)
{
if (!IsValidStatus(status)) {
throw new InvalidStatusException(status);
}
}
public bool Enable()
{
try {
CheckStatus(status);
// do stuff
CheckStatus(status);
// do more stuff
CheckStatus(status);
// do even more stuff
// 6 more times the above
return true;
} catch (InvalidStatusException) {
Trace.WriteLine("Error");
return false;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)