2016-02-18 37 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

這是完全正常的,而事實上一個優雅的解決這個問題。