![]() |
Visual Studio - Automatische Formatierung
Hallo,
Vielleicht kennen sich ja hier ein paar Leute auch ganz gut mit dem Visual Studio aus: Ich habevom Prinzip her sowas:
Code:
Und bei jeder besch*** Gelegenheit formatiert mir VS den Code so:
if (Bedingung1)
Anweisung; else if (Bedingung2) Anweisung; else if (Bedingung3) Anweisung;
Code:
Das geht mir sowas von auf die Nerven! Ich möchte meinen Code so wie oben formatiert haben!
if (Bedingung1)
Anweisung; else if (Bedingung2) Anweisung; else if (Bedingung3) Anweisung; Gibt es da eine Möglichkeit das Verhalten von VS entsprechend zu ändern oder in dem Fall auszustellen? Ich wollte jetzt eigentlich nicht die komplette automatische Formatierung ausstellen. Die ist ja generell schon ganz praktisch... :? |
AW: Visual Studio - Automatische Formatierung
Im Vergleich zum RAD Studio hat VS in Sachen Einrückungen schockierend wenig zu bieten. Aber auch im RAD Studio finde ich zu deiner else-Vorliebe nichts.
Ich persönlich hasse Autoformatierung, egal welche IDE |
AW: Visual Studio - Automatische Formatierung
Das ist korrekte Einrückung, denn jeder neue Block (also die Anweisungen die nach einem if kommen, und konsequenterweise dann auch die, die nach einem else kommen) werden eingerückt.
Du kannst nicht sagen Wasch mich, aber mach mich nicht nass. Neuer Block heisst immer Einrückung. Du kannst das vermeiden, in dem Du Dich z.B. an die Microsoft Framework Design Guidelines hältst, insbesondere an den Punkt bracing: Zitat:
![]() Gemäß den allgemein bei C# als Konsens angesehenen Guidelines wäre also folgendes richtig (und wird auch richtig formatiert):
Code:
Die Frage ist eigentlich eher, ob hier bei so vielen else-if's nicht ein Designproblem vorliegt. Wäre hier nicht möglicherweise ein Switch-Case besser angebracht?
if (Bedingung1)
{ Anweisung; } else if (Bedingung2) { Anweisung; } else if (Bedingung3) { Anweisung; } |
AW: Visual Studio - Automatische Formatierung
Ja ich weiß wie man es tun *sollte* :duck:
Ich bin nur bei einigen Ausnahmen einer anderen Meinung als die Guidelines und wollte gucken ob ich VS meine Meinung aufzwingen kann :mrgreen: Nagut dann muss ich mich wohl den Guidelines beugen :stupid: Die else-ifs sind aus einem Mini-Parser. Der Code besteht in Wirklichkeit aus 4 if-elses.
Code:
Ich könnte in dem Fall sicher auch ein switch-case benutzen aber meiner Meinung nach sprengt das die "if-Grenze" noch nicht und im switch wäre die escape-Bedingung der ersten 3 Abfragen etwas fuddeliger zu implementieren. Aber wenn du da einen optimalen/optimaleren Weg kennst, dann nur her damit (Mal abgesehen von der in dem Code noch nicht eingehaltenen {}-Klammerregel) ;)
string filterd = "";
bool instring = false; bool escape = false; for (int j = 0; j < PageContent[i].Length; j++) { if (PageContent[i][j] == '(' && !escape) instring = true; else if (PageContent[i][j] == ')' && !escape) instring = false; else if (PageContent[i][j] == '\\' && !escape) { escape = true; continue; } else if (instring) filterd += PageContent[i][j]; if (escape) escape = false; } |
AW: Visual Studio - Automatische Formatierung
Also ich würde das vermutlich eher so schreiben:
Code:
string filtered = String.Empty;
bool escape = false; bool instring = false; foreach (char current in PageContent[i]) { if (escape && instring) { filtered += current; } else { escape = (current == '\\'); if (escape) continue; if (current == '(') instring = true; else if (current == ')') instring = false; } } |
AW: Visual Studio - Automatische Formatierung
Sieht gut aus. Das foreach könnte ich noch einbauen.
Allerdings tut dein Code nicht das gleiche wie meiner:
Code:
stimmt nicht. escape muss nicht true sein damit der char an filtered drangehangen wird.
if (escape && instring)
{ filtered += current; } |
AW: Visual Studio - Automatische Formatierung
Ich würde das noch in eine eigene Routine auslagern ("ExtractString")
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 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