Beide machen das Gleiche. Ist eine Möglichkeit besser? Wenn ich den Code schreibe, weiß ich natürlich, was ich getan habe, aber wie sieht es mit jemand anderem aus, der es liest?
%Vor%ODER
%Vor%Ich glaube, es ist besser, das nicht (Negation) zu entfernen und die positive Behauptung zuerst zu bekommen:
%Vor%-oder-
%Vor%Ein Stilproblem:
%Vor%Wenn du die doppelte Negation annullierst, liest es sich viel besser, egal welcher Klammerstil du wählst. Code, der besser liest, ist immer am besten;)
Der zweite Weg ist besser, keine Verwirrung darüber, was du meinst ...
Ich denke, das ist eine ziemlich kleine Frage des Stils. Ich würde argumentieren, dass Ihre zwei Proben gleichermaßen lesbar sind.
Ich bevorzuge das erstere, aber andere Menschen bevorzugen nur einen Ausgangspunkt von einer Funktion und würden wahrscheinlich etwas vorschlagen wie:
%Vor%Wenn es die Gesamtheit der Methode ist, dann würde ich sagen, dass die zweite (mit dem else) ein bisschen eleganter ist. Wenn Sie vorher Code oder (besonders) viel mehr Code vor der Rückkehr im else Fall haben, würde ich sagen, dass es besser ist, das else nicht zu setzen. Es wird verhindert, dass der Code zu stark eingerückt wird.
d. entweder:
%Vor%oder
%Vor%Dieser Code fühlt sich wegen der unvermeidlichen doppelt negativen Logik chaotisch an (und das Mischen von Dingen wird es nicht aufräumen). Welche Anordnung Sie auch verwenden, ich denke, Sie sollten einige Kommentare hinzufügen, damit der Leser nicht doppelt vorgehen muss:
%Vor%Glauben Sie nicht, dass es einen besseren Weg gibt ... es hängt von jedem Entwickler ab. Aus diesem Grund sollten Sie vor dem Start eines Projekts entscheiden, was der Codierungsstandard ist ...
Ich mag die ersten besser.
%Vor%Für mich liest es sich wie ein "Standard" Sie können weitere Bedingungen verketten, aber am Ende gibt es einen Standard.
Natürlich ist es eine Frage des Stils.
Zusätzliche Frage.
Ist es C # -Stil, die eckigen Klammern und in einer einzigen Zeile zu setzen?
%Vor%Ich habe gesehen, dass dies in Java-Code-Samples in SO eingedrungen ist, und ich frage mich, ob das die Ursache ist.
BEARBEITEN
@Owen. Ich meine, ist es C # Stil mit diesem Formular?
%Vor%Anstatt dies (was wäre Java bevorzugt )
%Vor%Ich hatte in der Vergangenheit einige Argumente dafür, aber meistens nur mit Leuten, die aus C # stammen.
Aus Wartungssicht bevorzuge ich die erste Version. Ich habe weniger Fehler mit einem konsistenten "Ausstieg früh" -Stil gesehen.
Der ternäre Operator (? :) ist OK, aber nur, wenn es sehr unwahrscheinlich ist, dass neuer Code vor der 2. return-Anweisung eingefügt wird. Andernfalls, wenn die Zeit gekommen ist, etwas Neues in den zweiten Codepfad einzufügen, muss die ternäre Anweisung sowieso wieder ein if / else-Block sein.
Wenn ich nur eine Zeile habe, komprimiere ich die if-Anweisung wie folgt:
%Vor%Obwohl Andrew Rollings die beste Lösung bietet, obwohl ich bis heute nicht daran gedacht hätte, sie zu verwenden.
LFSR "sonst "Lösung ist am besten wartbar und lesbar.
Die Verwendung einer separaten else
-Klausel ermöglicht das Hinzufügen von Logik, ohne den Ablauf versehentlich zu ändern. Und es ist schlimm genug, mehrere Ausstiegspunkte zu haben, ohne zwei davon in einer einzigen ternären Operatoranweisung zu verstecken!
Tags und Links c# coding-style