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?

Était-ce utile?

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 {

}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top