Pourquoi devrais-je utiliser une logique positive dans un bloc si?
-
27-10-2019 - |
Question
Je ne comprends pas pourquoi il est préférable d'utiliser une logique positive dans un bloc if
http://msdn.microsoft.com/en-US/library/ aa629483.aspx
préféré:
if (true)
{
...
}
else
{
...
}
Pourquoi est-il une meilleure pratique d'avoir une logique positive dans un bloc si?
La solution
Il est généralement considéré comme plus facile à comprendre.
if (!ICanDoThis)
{
// don't do it
}
else
{
// do it
}
vs.
if (ICanDoThis)
{
// do it
}
else
{
// don't do it
}
Votre logique peut vous être limpide à aujourd'hui, mais penser le développeur qui se passe à travers un ou deux ans.
Mais comme tout le reste, ce n'est une ligne directrice. Plus précisément, j'utiliser quelque chose comme « logique négative » avec vérification d'erreur:
if (!myParametersAreValid)
{
// fail out
}
DoWorkWith(myParameters)
J'éviter une cascade de conditionals que "logique positive" aurait par ailleurs besoin.
Autres conseils
Je fais parfois une logique semi-positif comme celui-ci. Je pense qu'il est logique techniquement positive, car elle n'utilise pas les opérateurs « non ». Je trouve parfois difficile d'utiliser toujours la logique positive, car elle finit par faire un nettoyage mon code:
if (ICanDoThis == false)
{
// I can't do this
}
else
{
// I can do this
}
I have always seen people test the most probable outcome first. For example modal dialogs normally have a default button(highlighted) You see this because it is most probable or most common that this will be used.So if you are expecting true you would see
if (true) {
} else {
}