2010-10-21 60 views
0

就拿下面兩個語句:方法與布爾返回 - 如果別人對如果

if (booleanVariable) 
{ 
    doSomething(); 

    return true; 
} 
else 
{ 
    return false; 
} 

if (booleanVariable) 
{ 
    doSomething(); 

    return true; 
} 

return false; 

哪一個將是首選?

它們都在最後返回相同的結果。

任何一個比其他人更好用的理由是什麼?

+0

請參閱http://stackoverflow.com/questions/2677843/is-there-any-appreciable-difference-between-if-and-if-else – BoltClock 2010-10-21 18:27:54

+0

可能的重複[爲什麼「else」之後很少使用「if x然後返回「?](http://stackoverflow.com/questions/3261849/why-is-else-rarely-used-after-if-x-then-return) – kennytm 2010-10-21 18:28:15

回答

9

我個人認爲,最徹底的方法是

if (booleanVariable) { 
    doSomething(); 
} 
return booleanVariable; 

移動多餘的回報外,如果塊突出,如果變量被設置你在做什麼不同。

+0

或者,每當booleanVariable設置爲true(可能默認爲false),立即調用doSomething()。無論哪種方式,它都是更少的代碼。 – 2010-10-21 18:30:51

0

的,如果... else結構提供了更多可讀的代碼,但如果你瞭解它很好,不想寫的一樣多,只是做第二個:-)

0

我會做的不同的方式。因爲你的第一個代碼解決方案可能會給出一個錯誤,至少在c#中,因爲你需要返回一個超出if-else範圍的值。

我會創建一個單獨的布爾變量,並將其設置爲真/假取決於你的,如果測試結果

bool test; 

if (booleanVariable) 
{ 
    doSomething(); 

    test = true; 
} 

return test; 

現在如果如果測試失敗,返回布爾會留下假的默認。