Wichtiger Hinweis : Bei dieser Frage geht es nicht um die Überlegenheit eines Bracing-Stils. Ich bin gerade dabei, Stile zu wechseln, um für mich selbst zu beurteilen, welche Version meiner Meinung nach in meiner Situation am besten funktioniert, und ich mag Allman genauso wie 1TBS.
Benutzer des 1TBS-Bracing-Stils, wie formatieren Sie lange Bedingungen in einer if
-Anweisung und dem nachfolgenden Code?
Ich glaube, dass es einen besseren Weg geben muss. Mein aktueller Weg besteht darin, vor der ersten Zeile des Codeblocks eine leere Zeile einzufügen. Allman sieht auch in diesem Fall nicht sehr gut aus, obwohl meiner Meinung nach besser lesbar.
Ein weiteres Beispiel mit for
loops:
Nicht so nett ...
KNF (8 Leerzeichen Einrückung) würde hier helfen, aber ich möchte das vermeiden. Ich habe ein paar andere Optionen, aber ich würde gerne hören, ob es eine Art Standard Weg gibt.
Ich würde einfach einige Variablen für absolute Klarheit und Lesbarkeit verschwenden:
%Vor% Dort! 1TBS in seiner ganzen Pracht. Kein Stilmix. Keine Hässlichkeit. Indent (1) kann damit ohne /* *INDENT-OFF* */
betrügen umgehen.
Sie könnten den Bedingungen sogar aussagekräftige Namen geben, zB
%Vor% Ich stimme zu, dass Mischstile oft verpönt sind.
Aber ich wage zu sagen, dass die Regel nach Möglichkeit zur Lesbarkeit gebogen werden kann
In Fällen, in denen der Stil streng erzwungen ist (Firmencodierungsrichtlinien)
Normalerweise mache ich das:
Verwenden Sie für alle Bedingungen nur einen Einzelsinn von Einzügen
und eine weitere zusätzliche Ebene für den Code innerhalb der geschweiften Klammern.
Dies ist so gut lesbar wie es geht, ohne Puristen zu beleidigen.
Einzelner Einrückstrich für jede Ebene, verwenden Sie Klammern für jede Bedingung, ob benötigt oder nicht.
Bei komplizierten Bedingungen können Allman-artige Klammern gut funktionieren.
Der allgemeine Ansatz funktioniert für die Fortsetzung von Code, der nicht in eine Zeile passt, oder für Listen von Funktionsargumenten.
Jedes schließende Element ist auf der gleichen Ebene wie das öffnende Element eingerückt, daher das "));" für "Trace.WriteLine (String.Format (" und das freistehende "; für" return ".
YMMV.
%Vor%Tags und Links c standards indentation curly-brackets