2010-10-21 17 views
0

Prenons par exemple les deux énoncés suivants:Méthode avec retour booléen - si autre contre si

if (booleanVariable) 
{ 
    doSomething(); 

    return true; 
} 
else 
{ 
    return false; 
} 

et

if (booleanVariable) 
{ 
    doSomething(); 

    return true; 
} 

return false; 

Lequel serait préféré?

Ils retournent tous deux le même résultat à la fin.

Une raison serait-elle préférable d'utiliser l'autre?

+0

Voir http://stackoverflow.com/questions/2677843/is-there-any-appreciable-difference-between-if-and-if-else – BoltClock

+0

duplication possible de [Pourquoi "else" est rarement utilisé après "if" if x puis renvoyer "?] (http://stackoverflow.com/questions/3261849/why-is-else-rarely-used-after-if-x-then-return) – kennytm

Répondre

9

Personnellement, je pense que la manière la plus propre serait

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

Déplacement des retours redondants en dehors du bloc si met en évidence ce que vous faites différemment si la variable est définie.

+0

Ou, chaque fois que booleanVariable est défini sur true (probablement par défaut faux), appelez immédiatement doSomething(). De toute façon, c'est moins de code. –

0

si ... la structure autre fournit le code plus lisible, mais si vous le comprenez bien et ne veulent pas écrire autant, faites la deuxième :-)

0

je l'aurais fait en autrement. Depuis, votre première solution de code peut donner une erreur, au moins dans C#, car vous devrez renvoyer une valeur en dehors de la portée if-else.

j'aurais créé une variable bool séparée, et le mettre à true/false selon ce que votre si test résulte

bool test; 

if (booleanVariable) 
{ 
    doSomething(); 

    test = true; 
} 

return test; 

maintenant si le cas test échoue, le bool de retour restera fausse défaut.