Warum sollte ich eine positive Logik in einem If -Block verwenden?
-
27-10-2019 - |
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?
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 {
}