AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein .NET-Framework (managed code) C# Visual Studio - Automatische Formatierung

Visual Studio - Automatische Formatierung

Ein Thema von Neutral General · begonnen am 10. Sep 2015 · letzter Beitrag vom 28. Sep 2015
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.164 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Visual Studio - Automatische Formatierung

  Alt 10. Sep 2015, 10:33
Hallo,

Vielleicht kennen sich ja hier ein paar Leute auch ganz gut mit dem Visual Studio aus:
Ich habevom Prinzip her sowas:

Code:
if (Bedingung1)
    Anweisung;
else
if (Bedingung2)
    Anweisung;
else
if (Bedingung3)
    Anweisung;
Und bei jeder besch*** Gelegenheit formatiert mir VS den Code so:

Code:
if (Bedingung1)
    Anweisung;
else
    if (Bedingung2)
       Anweisung;
    else
       if (Bedingung3)
          Anweisung;
Das geht mir sowas von auf die Nerven! Ich möchte meinen Code so wie oben formatiert haben!
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...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.706 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Visual Studio - Automatische Formatierung

  Alt 10. Sep 2015, 10:52
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
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.528 Beiträge
 
#3

AW: Visual Studio - Automatische Formatierung

  Alt 10. Sep 2015, 10:54
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:
Braces should never be considered optional. Even for single statement blocks, you should always use braces. This increases code readability and maintainability.
Quelle: http://blogs.msdn.com/b/brada/archiv...px#_Toc6325242

Gemäß den allgemein bei C# als Konsens angesehenen Guidelines wäre also folgendes richtig (und wird auch richtig formatiert):

Code:
if (Bedingung1)
{
    Anweisung;
}
else if (Bedingung2)
{
    Anweisung;
}
else if (Bedingung3)
{
    Anweisung;
}
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?
Sebastian P.R. Gingter
不死鳥 Visit my Blog.
Do not argue with an idiot. They lower you to their level and then try to beat you with experience.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.164 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Visual Studio - Automatische Formatierung

  Alt 10. Sep 2015, 12:06
Ja ich weiß wie man es tun *sollte*
Ich bin nur bei einigen Ausnahmen einer anderen Meinung als die Guidelines und wollte gucken ob ich VS meine Meinung aufzwingen kann

Nagut dann muss ich mich wohl den Guidelines beugen

Die else-ifs sind aus einem Mini-Parser. Der Code besteht in Wirklichkeit aus 4 if-elses.

Code:
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;
}
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)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.528 Beiträge
 
#5

AW: Visual Studio - Automatische Formatierung

  Alt 10. Sep 2015, 12:51
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;             
    }
}
Sebastian P.R. Gingter
不死鳥 Visit my Blog.
Do not argue with an idiot. They lower you to their level and then try to beat you with experience.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.164 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Visual Studio - Automatische Formatierung

  Alt 10. Sep 2015, 12:56
Sieht gut aus. Das foreach könnte ich noch einbauen.
Allerdings tut dein Code nicht das gleiche wie meiner:

Code:
if (escape && instring)
{
    filtered += current;
}
stimmt nicht. escape muss nicht true sein damit der char an filtered drangehangen wird.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: Visual Studio - Automatische Formatierung

  Alt 28. Sep 2015, 07:55
Ich würde das noch in eine eigene Routine auslagern ("ExtractString")
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf