2013-11-04 8 views
57

Ich habe einen Schalter mit einem Enum in VS 2013 eingegeben und alle Case-Anweisungen automatisch ausgefüllt, nachdem ich den Schalter beendet habe. Jetzt kann ich es nicht wiederholen. Ich hatte keine Halluzinationen, der Schalter füllte sich automatisch mit allen Enum-Optionen, eine pro Fall. Durchforstete MS-Dokumente für VS 2013 und fand sie nicht.Switch enum auto-fill

Ich benutze ein paar Enums und diese Funktion wird mir eine Menge Zeit ersparen, wenn ich herausfinden kann, was ich getan habe, um es auszulösen. Kann jemand helfen?

+0

http://worthyd.com/techblog/index.php/2010/09/visual-studio-c-enum-switch-snippet-blew-my-mind/ – wudzik

Antwort

61

Verwenden Sie den Code snipped sw (tab) (tab)

hoffe, das hilft,

+2

Bedeutung ... .type 'sw', intellisense erscheint und fordert Sie auf, einen Schalter zu erstellen, drücken Sie die Tabulatortaste, wenn diese markiert ist, und klicken Sie erneut, und Sie erhalten Ihre switch-Anweisung – paqogomez

+9

Sie müssen klicken, sobald Sie das Argument für die eingegeben haben switch-Anweisung, um die case- und break-Zeilen automatisch zu generieren, zumindest im Fall einer Enumeration. – Marcus10110

+0

@ Marcus10110: Oder drücken Sie die Eingabetaste ... – caesay

3

standardmäßig von Visual Studion das Snippet korrekt funktioniert. Sie sollten "sw" eingeben und dann "Tab" drücken.

Wenn Sie Resharper verwenden, funktioniert das Snippet nicht, da das Snippet von Resharper standardmäßig eine höhere Priorität hat. Daher sollten Sie das Snippet von ReSharper deaktivieren.

Gehen Sie zu "Resharper" -> "Vorlagen Explorer" -> "C#" dann deaktivieren Sie "wechseln". Versuchen Sie "sw" + double "Tab"

+3

Warum sollte Resharper seine Version besser denken? – Daryl

+7

Hmmm ... also habe ich die switch-Anweisung deaktiviert, und die Double-Tabs konnten die Enums nicht automatisch füllen – Daryl

+2

Dann können Sie die integrierte Intellisense-Funktion von ReSharper deaktivieren. Gehen Sie zu Reshaper Menü> Optionen> Umgebung> IntelliSense> Allgemein und wählen Sie Visual Studio – neural5torm

92

Hinweis: Diese Antwort gilt für die Durchführung der Switch/Enum-Eigenerzeugung bei gleichzeitiger Verwendung von Resharper.

Mit Visual Studio 2013 und Resharper 8.2 funktionieren die zuvor genannten Methoden nicht. Hier erfahren Sie, wie Sie diese Generation mit Resharper zum Laufen bringen. Hoffentlich wird es jemandem die fünfzehn Minuten sparen, die ich gerade damit verbracht habe, dies herauszufinden.

Performing "sw (tab) (Tab)" wird nur dann erzeugen die folgende:

switch (nameOfEnumVariable) 
{ 

} 

ReSharper die Etiketten Alt mit generieren + Enter (wenn Sie den Cursor in der switch-Anweisung steht) und Auswählen generieren Schalter Etiketten wie im folgenden Screenshot:


Using the Resharper menu to fill in a switch statement


Das Ergebnis sieht wie folgt aus:


enter image description here


+2

Das funktioniert auch mit VS2010 und ReSharper 8.2. Danke =) –

+3

Das tat es mit VS2012 und R # 8.2. Danke, dass du mir Kopfschmerzen ersparst hast. – pqsk

+4

Funktioniert nicht mit VS2012 und R # 8.2.3000.5176 für mich ..."Switch-Labels erzeugen" fehlt, nur "Optionen für CS1522 ..." ist bei Alt + Enter vorhanden. Irgendwelche Vorschläge? –

13

Die gewählte Antwort ist meistens richtig, die Sie nicht brauchen ReSharper als anderen (zumindest nicht mit Visual Studio vorgeschlagen haben Professional 2012+).

1) Typ "sw", dann "[Tab] [Tab]" (wie Marvin Smit sagte)

die (wie jmblack sagte) erzeugen wird so etwas wie:

switch (switch_on) 
    { 
      default: 
    } 

aber dann

2) Sie müssen auswählen, auf was zu zählen ist (switch_on wird an dieser Stelle noch hervorgehoben).Geben Sie also die Enum (oder Ihre Variable vom Enum-Typ) ein, während switch_on highlited ist und drücken Sie [Enter] [Enter].

(Ich habe gerade bestätigt, dass dies auf meinem Rechner mit VS2012 funktioniert hat, und ich bin ziemlich sicher, dass dies das gleiche ist, was ich auf meiner anderen Maschine mit VS2013 gemacht habe, und ich habe keine anderen Versionen von VS getestet Express/etc))

11

von Visual Studio 2012 Express - ohne ReSharper.

1)
2) drücken Sie zweimal TAB "Switch" schreiben, dann werden Sie sehen:

switch (switch_on) 
{ 
     default: 
} 

(SWITCH_ON highlited ist)
3) erneut eingeben SWITCH_ON auf Ihre ENUM-Typ (keine Variable Ihrer Aufzählungstyp, ist es nicht für mich gearbeitet)
4) klicken woanders oder drücken Sie die Eingabetaste, jetzt sollten Sie alle sehen eNUM-Elemente gefüllt:

switch (YOUR_ENUM_TYPE) 
{ 
    case YOUR_ENUM_TYPE.Item1: 
     break; 
    case YOUR_ENUM_TYPE.Item2: 
     break; 
    case YOUR_ENUM_TYPE.Item3: 
     break; 
    default: 
     break; 
} 

5) vergessen Sie nicht den Eingang Ihres Schalters zu ändern ..

1

ich eine freie und Open-Source-Erweiterung geschrieben haben, basierend auf Roslyn, für Visual Studio 2015 und 2017, das erlaubt nicht nur den Schalterfall für eine Enum zu füllen, sondern ist auch in der Lage, neue Fälle hinzuzufügen, wenn Enum-Werte (Felder) zur Enum-Typ-Definition hinzugefügt wurden, oder die Liste der Fälle nach Wert oder Name zu sortieren.

Es ist hier verfügbar: Enum Case Generator

Dies ist, wie es zu benutzen:

enter image description here

+0

Das funktioniert gut und war die einzige Antwort, die für mich funktionierte. – Henry

0

Ich denke, was Sie brauchen, ist dies:

sw(tab)(tab)enumVariableName(tab)(downArrow) 

ich es und Werke getestet (in VS2013 mindestens).

0

Hallo Ich lief in das gleiche Problem, ich habe gerade herausgefunden, dass, wenn Sie tun:

switch(nameofvariable){ 
    default: 
    break; 
} 

wenn Sie die Variable füllen und Sie einen Doppelklick auf die Variable Ihrer Wahl (die Enum) es gibt Ihnen alle Fälle