2010-12-27 3 views
5

Ich versuche, einen Weg zu finden, eine switch-Anweisung wie diese haben ReSharper-Format (mit Strg + E, Strg + C):Kann Resharper Fallanweisungen so formatieren, dass sie in derselben Zeile wie der Fall selbst beginnen?

switch (int_i) { 
    case 1 : Console.WriteLine("You entered one"); 
       break; 
    case 2 : Console.WriteLine("You entered two"); 
       break; 
    case 3 : Console.WriteLine("You entered three"); 
       break; 
    default : Console.WriteLine("Please enter a number between 1 and 5"); 
       break; 
} 

ich persönlich nicht diese Art überhaupt mag, aber es ist Ich werde in einem Buch, das ich studiere, verwendet und möchte, dass Resharper mir hilft, meinen Code auf die gleiche Weise zu formatieren.

Es gibt zwei Dinge zu beachten:

  1. Die Aussagen haben auf der gleichen Linie wie die Case-Anweisung zu starten.
  2. Die Doppelpunkte haben ausgerichtet werden, so da default länger als case 3 es ein zusätzlicher Platz vor dem Doppelpunkt auf case 1, case 2 und case 3 sein muss.

Kann Resharper dies tun?

+3

Also magst du den Stil nicht, und die Formatierung wie im Buch fügt deiner Fähigkeit, aus dem Buch zu lernen, keinen Mehrwert hinzu, aber du willst Zeit damit verbringen, herauszufinden, wie man es so formatiert ? Ich kann einen minimalen Wert darin sehen, zu lernen, wie man ReSharper dazu benutzt, aber ehrlich gesagt würde ich meine Bemühungen darauf konzentrieren, Fähigkeiten zu erwerben, die fruchtbarer sind. Ich hoffe auch, dass das Buch, von dem du lernst, dir nicht den Variablennamen 'int_i' gegeben hat; Das ist schrecklich. Entschuldigung, es ist schwer, in 600 Zeichen nicht wie ein Idiot zu klingen. – jason

+2

@Jason stimmen völlig zu, aber wenn die Code-Beispiele komplex waren und das Buch "Linie 123" ohne irgendeinen anderen Kontext referenzierte, könnte es nützlich sein, die Proben in einer Reihe zu haben. –

+2

@ Jason: Ich war enttäuscht, eine Variable namens "int_i" zu sehen. Es kommt jedoch aus dem Buch. – comecme

Antwort

1

Sie können die Codeformatierung in ReSharper - Optionen - Sprachen - C# - Formatierung Stil anpassen, aber es scheint, es gibt nichts über Sie fragen. Das nächste, was ich gefunden habe - Klammern Formatierung in Switch-Anweisung.

+0

Danke für das Posten einer Antwort. Ich wusste bereits, dass Sie Formatierung anpassen können, meine Frage war, ob es möglich war, die Formatierung zu erhalten, die ich beschrieben habe. – comecme

1

Ich weiß, das ist alt, aber es ist möglich. Es ist einfach nicht offensichtlich. Ich bin gerade erst dazu gestolpert.

Gehen Sie zu ReSharper Optionen/Code Editing/C#/Formatieren Stil/Klammern Layout. Wählen Sie "Blockieren unter" Groß-/Kleinschreibung ", um zu sehen, dass das Muster falsch ist. Wählen Sie nun Andere. Stellen Sie ihn auf "Am Ende der Zeile (K & R Style)". Nichts in der Probe wird sich ändern. Wählen Sie erneut 'Blockieren unter "Groß-/Kleinschreibung", um zu sehen, dass die Formatierung nun korrekt ist.

Ich bevorzuge BSD-Stil, der auch funktioniert.

+0

Wenn ich die Einstellung "Andere" von "Bei der nächsten Zeile (BSD-Stil)" zu "Am Ende der Zeile (K & R-Stil)" ändere, sehe ich eine Änderung in der Probe. Wenn ich zurück zu "Block unter 'Fall' Label" wechsle sehe ich keine Änderung. So habe ich andere: "Ende der Zeile (K & R)" und Block unter Groß-Label: "Bei der nächsten Zeile (BSD)". – comecme

0

Ich denke, es gibt jetzt eine Option dafür. Ich habe die Version 2017.3.2.

ReSharper-Optionen/Code-Bearbeitung/C#/Formatierungsstil/Zeilenumbruch und Wrapping/Anordnung von eingebetteten Anweisungen und Satz Platzieren Sie eine einfache "case" -Anweisung in derselben Zeile wie bei Always.

+0

Das funktioniert nicht für mein Beispiel. Da jeder "case" zwei Zeilen hat (die 'WriteLine' und die' break'), betrachtet ReSharper sie nicht als _simple_ case-Anweisung, so dass nach jedem 'case' noch ein Zeilenumbruch eingefügt wird. Und selbst mit nur einer Aussage werden die Doppelpunkte nicht ausgerichtet. Es würde nur ein Leerzeichen zwischen den Fall und die Aussage gesetzt. – comecme

Verwandte Themen