Supposons que j'ai deux méthodes d' bool Foo()
et bool Bar()
. Ce qui est le plus lisible?
if(Foo())
{
SomeProperty = Bar();
}
else
{
SomeProperty = false;
}
ou
SomeProperty = Foo() && Bar();
D'une part, je considère que le court-circuit &&
à être une fonction utile et le deuxième exemple de code est beaucoup plus courte. D'autre part, je ne suis pas sûr que les gens sont généralement habitués à voir &&
en dehors d'une instruction conditionnelle, donc je me demande si c'introduire une certaine dissonance cognitive qui fait le premier échantillon de la meilleure option.
Qu'en pensez-vous? Existe-il d'autres facteurs qui influent sur la décision? Comme, si l' &&
expression est plus qu'une ligne peut tenir sur l'écran, dois-je préfère l'ancien?
Post-réponse précisions:
Quelques choses que je devrais avoir inclus dans la question initiale, que les réponses apportées jusqu'.
-
Bar()
peut être plus coûteux à exécuter que d'Foo()
, mais ni la méthode devrait avoir des effets secondaires. - Les méthodes sont nommés de façon plus appropriée, pas comme dans cet exemple.
Foo()
se résume à quelque chose commeCurrentUserAllowedToDoX()
etBar()
est plus comme,XCanBeDone()