![]() |
AW: Die "richtige" Sourcecode Formatierung?
Zitat:
Delphi-Quellcode:
Und schon is klar was wohin gehört...
if ..
then begin .. end else if .. then begin .. end else begin .. end; ggf.
Delphi-Quellcode:
So würde ich es machen...
if ..
then begin .. end else begin if .. then begin .. end else begin .. end; end; Mavarik :coder: |
AW: Die "richtige" Sourcecode Formatierung?
Delphi-Quellcode:
if ..
then begin .. end else begin if .. then begin .. end else begin .. end; end; ... mache ich bzgl. Struktur genauso, nur etwas kompakter und nicht so "raumgreifend" in die Breite;)
Delphi-Quellcode:
und zumindest in CNpack und auch aktuell integriertem Castalia sieht das sogar sehr sauber aus:)
if (..) then begin
.. end else begin if (..) then begin .. end else begin .. end; end; |
AW: Die "richtige" Sourcecode Formatierung?
Ich liebe solche Threads ;-)
Hier ist mein Beitrag zu den If then else
Delphi-Quellcode:
Eine Zeile, die mit "if" beginnt, hört immer mit "then" auf.If bla then TuWas; If bla then TuWas else TuWasAnderes; If bla then begin TuWas; TuNochWas; end else begin TuWasAnderes; TuNochWasAnderes; end; If bla then begin TuWas; end else If blabla then begin TuNochWas; end; "Darunter" kommt die auszuführende Funktion. Natürlich eingerückt. Das gilt auch für das Begin und End, die auf eine ebene gehören. Bei verschachtelten Ifs finde ich, ist eine Einrückung des nächsten If zwingend notwendig, damit ich auf einen Blick sehe, dass es eine Verschachtelung ist. |
AW: Die "richtige" Sourcecode Formatierung?
Zitat:
Ich würde das hier befürworten:
Delphi-Quellcode:
Sowas macht man ja eigentlich nur, wenn man eigentlich ein ein case-Konstrukt bräuchte, das aber nicht zugelassen ist. (Ausdruck zur Compilezeit variabel oder so...)
if .. then
begin .. end else if .. then begin .. end else begin .. end; Insofern finde ich es sinnvoll, das auch optisch analog zu gestalten. Logisch ist das auch nur eine "Unterebene", da nur einer der Subblöcke ausgeführt wird. Wenn man da jeden Subblock weiter einrückt, hat man ja schnell ewig lange Zeilen. Zur Praxisrelevanz ein (delphisiertes) Codezitat:
Delphi-Quellcode:
Da habe ich dann auch lieber deutliche Einrückungen (1 Tab = 4 Leerzeichen) damit man die Blöcke direkt sieht. Würde man dann allein für das begin eine eigene Einrückungsebene einziehen, vergeudet man ja die Hälfte des Platzes...
startTime, endTime: string;
if (SpecificRegex.IsMatch(Event.Time)) then begin match := SpecificRegex.Match(Event.Time); startTime := match[0]; endTime := match[1]; end else if (RegexA.IsMatch(Event.Time)) then begin startTime := '8:00'; endTime := '10:00'; end else if (RegexB.IsMatch(Event.Time)) then begin startTime := '9:00'; endTime := '12:00'; end else if (RegexC.IsMatch(Event.Time)) then begin startTime := '12:00'; endTime := '15:00'; end else if (RegexD.IsMatch(Event.Time)) then begin startTime := '14:00'; endTime := '16:00'; end else begin allDayEvent := true; startTime := Event.startTimeDate; endTime := Event.EndDate.AddDays(1); end Ich würde daher aus
Delphi-Quellcode:
das machen:
if bla then
begin TuWas; end
Delphi-Quellcode:
Dann kann man auch (etwas leichter) links am Rand 'runtergucken um das nächste end zu sehen.
if bla then
begin TuWas; end |
AW: Die "richtige" Sourcecode Formatierung?
Auch wenn solche Threads sich wiederholen. Etwas kann man immer mitnehmen.
Durch solche Threads habe ich für mich das "Exit" entdeckt. Gibt's natürlich schon länger und habe ich bisher immer als "bah" angesehen. Beim näheren Hinsehen kann man das aber sehr sinnvoll als ersatz für die If-Verschachtelung verwenden. Statt
Delphi-Quellcode:
Finde ich folgendes besser lesbar
if bla then
Result = 3 else if blabla then Result = 5 else if Blub then Result = 8 else Result = 10
Delphi-Quellcode:
if bla then
Exit(3); if blabla then Exit(5); if Blub then Exit(8); Result = 10 |
AW: Die "richtige" Sourcecode Formatierung?
Zitat:
Wo sind deine Then's geblieben? und auch noch Tabs... hmm ":="; hmm end : String? Zitat:
Case Ersatz... (Wenn überhaupt)
Delphi-Quellcode:
start, end: string;
if (SpecificRegex.IsMatch(Event.Time)) then begin match := SpecificRegex.Match(Event.Time); start := match[0]; end := match[1]; end else if (RegexA.IsMatch(Event.Time)) then begin start := '8:00'; end := '10:00'; end else if (RegexB.IsMatch(Event.Time)) then begin start := '9:00'; end := '12:00'; end else if (RegexC.IsMatch(Event.Time)) then begin start := '12:00'; end := '15:00'; end else if (RegexD.IsMatch(Event.Time)) then begin start := '14:00'; end := '16:00'; end else begin allDayEvent = true; start = Event.StartDate; end = Event.EndDate.AddDays(1); end |
AW: Die "richtige" Sourcecode Formatierung?
Zitat:
Zitat:
Sry, die Tabs werden im Forum nicht gut angezeigt. (Tabs vs Spaces würde ich auf später verschieben...) Ich habe sie durch Leerzeichen ersetzt ;-) |
AW: Die "richtige" Sourcecode Formatierung?
Habt Ihr euch mal überlegt dass man im Endeffekt ganz andere Probleme hat wenn man anfangen muss 5-fach verschachtelte Bedingungen zu schreiben? :stupid:
Beiträge wie dieser sind wahrscheinlich der Grund weshalb ich nirgendwo eingeladen werde |
AW: Die "richtige" Sourcecode Formatierung?
Zitat:
|
AW: Die "richtige" Sourcecode Formatierung?
Beim letzten Beispiel sieht man nur lauter IF's aber die so seltsam eingerückten ELSE vorher gehen komplett verloren. Das nenn ich mal unübersichtlich.
Ich denke über dieses Thema könnte man endlos streiten und nie zu einem Kompromiss finden, jeder hat hier halt seine Vorlieben. Vielleicht sollten wir es dabei auch belassen 8-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz