Frage

Ich verstehe nicht, warum es eine beste Praxis ist, eine positive Logik in einem If -Block zu verwenden

http://msdn.microsoft.com/en-us/library/aa629483.aspx

Bevorzugt:

if (true) 
{ 
   ... 
} 
else 
{ 
   ... 
} 

Warum ist es eine beste Praxis, eine positive Logik in einem IF -Block zu haben?

War es hilfreich?

Lösung

Es ist allgemein angesehen als einfacher zu verstehen.

if (!ICanDoThis)
{
    // don't do it
}
else
{
    // do it
}

vs.

if (ICanDoThis)
{
    // do it
}
else
{
    // don't do it
}    

Ihre Logik mag heute für Sie kristallklar sein, aber denken Sie an den Entwickler, der in ein paar Jahren in dieser Hinsicht passiert.

Aber wie alles andere ist dies nur eine Richtlinie. Insbesondere verwende ich so etwas wie "negative Logik" mit Fehlerprüfung:

if (!myParametersAreValid)
{
    // fail out
}

DoWorkWith(myParameters)

Ich vermeide eine Kaskade von Bedingungen, die "positive Logik" sonst erfordern würde.

Andere Tipps

Ich mache manchmal eine halb positive Logik wie diese. Ich denke, es ist technisch positive Logik, weil es "nicht" Operatoren nicht verwendet. Manchmal fällt es mir manchmal schwer, immer positive Logik zu verwenden, da er meinen Code unberührt macht:

if (ICanDoThis == false)
{
  // I can't do this
}
else
{
  // I can do this
}

Ich habe Leute immer zuerst das wahrscheinlichste Ergebnis getestet. Zum Beispiel haben modale Dialoge normalerweise eine Standardtaste (hervorgehoben) Sie sehen dies, da es am wahrscheinlichsten oder am häufigsten ist, dass dies verwendet wird. Wenn Sie also wahr erwarten, würden Sie sehen

if (true) {

} else {

}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top