2016-02-18 111 views
1

我有一个返回结果类的方法。结果类具有布尔属性来指示操作是否成功。只有一些准则是真的,它才会是真的。我认为下面的代码比相当的if语句更简洁,但我想检查我所做的事是否被认为是不好的做法。这种类型的逻辑条件检查不良做法吗?

bool successfullyParsed; 

bool conditionA = true; 
bool conditionB = true; 

successfullyParsed = conditionA && conditionB; 
//successfullyParsed should only be true if both criteria are true. 

回答

1

不,这不是不好的做法 - 事实上,它可以使更多复杂的条件逻辑更具可读性的好方法,例如(一个简单的例子):

bool isLive = pages.Any(x => x.Live == true && x.Published == true && ...) 

在您的例子可能你不只是做以下事情,使其更具可读性?

bool conditionA = true; 
bool conditionB = true; 

bool successfullyParsed = conditionA && conditionB; 

这样你就可以删除最初的声明successfullyParsed

如果你的方法是回到您的成功解析布尔那么你甚至可以进一步缩短至:

bool conditionA = true; 
bool conditionB = true; 

return conditionA && conditionB; 
+1

除非您优化是最重要的,否则这是完美的答案。请记住,你不会为自己编码。你为下一个糟糕的schlub编码(即使你是这样)看代码。这个逻辑将使下一个人的时间变得更加容易。 – Matt

1

这是完全正常的,而事实上一个优雅的解决这个问题。