web-dev-qa-db-fra.com

Activer le remplissage automatique enum

J'étais en train de taper un commutateur avec une énumération dans VS 2013 et toutes les instructions de cas se sont complétées automatiquement après avoir terminé le commutateur. Maintenant, je ne peux pas le répéter. Je n'étais pas hallucinant, l'interrupteur rempli avec toutes les options enum, une par cas, automatiquement. A examiné la documentation de MS 2013 pour VS 2013 et ne l'a pas trouvé.

J'utilise pas mal d'énums et cette fonctionnalité me fera gagner beaucoup de temps si je peux trouver ce que j'ai fait pour le déclencher. Quelqu'un peut-il aider?

64
Metaphor

Utilisez l'extrait de code sw (tabtab)

J'espère que cela t'aides,

81
Marvin Smit

Avis: Cette réponse s'applique à l'exécution de la génération automatique switch/enum en utilisant également Resharper.

À l'aide de Visual Studio 2013 et Resharper 8.2, les méthodes mentionnées précédemment ne fonctionnent pas. Voici comment faire fonctionner cette génération avec Resharper. Espérons que cela épargnera à quelqu'un les quinze minutes que je viens de passer à comprendre cela.

L'exécution de "sw (onglet) (onglet)" générera uniquement les éléments suivants:

switch (nameOfEnumVariable)
{

}

Resharper peut générer les étiquettes à l'aide de Alt + Entrée (si votre curseur se trouve dans l'instruction switch) et en sélectionnant Générer les étiquettes de commutateur comme dans la capture d'écran suivante:


Using the Resharper menu to fill in a switch statement


Le résultat ressemble à ceci:


enter image description here


101
jmsb

La réponse sélectionnée est généralement correcte, vous n'avez pas besoin de Resharper comme l'ont suggéré d'autres (du moins pas avec Visual Studio Professional 2012+).

1) tapez "sw" puis "[tab] [tab]" (comme Marvin Smit m'a dit)

Ce qui (comme jmblack dit) générera quelque chose comme:

  switch (switch_on)
  {
            default:
  }

mais alors

2) vous devez sélectionner la chose à énumérer (switch_on sera mis en évidence encore à ce stade). Tapez donc Enum (ou votre variable du type enum) pendant que switch_on est mis en évidence et appuyez sur [Entrée] [Entrée].

(Je viens de confirmer que cela fonctionnait sur ma machine fonctionnant sous VS2012, et je suis à peu près certain que c'est la même chose que sur mon autre machine fonctionnant sous VS2013 et que je n'ai pas testé d'autres versions de VS (ultimate/express/etc. ))

23
00jt

Visual studio express 2012 - sans Resharper:

1) écrivez "switch"
2) appuyez deux fois sur la touche de tabulation, vous verrez alors:

switch (switch_on)
{
        default:
}

(switch_on est en surbrillance)
3) retaper switch_on sur votre type ENUM (pas une variable de votre type enum, cela n'a pas fonctionné pour moi)
4) cliquez quelque part ailleurs ou appuyez sur entrée, vous devriez maintenant voir tous les éléments enum remplis:

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) n'oubliez pas de changer l'entrée de votre commutateur.

16
chviLadislav

Par défaut, l'extrait de Visual Studion fonctionne correctement. Vous devez taper "sw" puis appuyer deux fois sur "Tab".

Si vous utilisez Resharper, l'extrait de code ne fonctionne pas, car l'extrait de code de Resharper a plus de priorité, par défaut. Donc, vous devriez désactiver l'extrait de resharper.

Allez dans "Resharper" -> "Explorateur de modèles" -> "C #" puis décochez "switch". Essayez "sw" + double "onglet"

4
GSerjo

J'ai écrit une extension gratuite et open source, basée sur Roslyn , pour Visual Studio 2015 et 2017, qui permet non seulement de remplir le cas d'un commutateur, mais également d'ajouter de nouveaux cas. si des valeurs enum (champs) ont été ajoutées à la définition du type enum, ou triez la liste des observations par valeur ou par nom.

Il est disponible ici: Enum Case Generator

Voici comment l'utiliser:

enter image description here

3
Simon Mourier

Je pense que ce dont vous avez besoin est ceci:

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

Je l'ai testé et fonctionne (au moins en VS2013).

3
marcelom

Bonjour, je viens de rencontrer le même problème, je viens de découvrir que lorsque vous le faites:

switch(nameofvariable){
  default:
  break;
}

lorsque vous remplissez la variable et que vous double-cliquez sur la variable de votre choix (l'énum), vous obtenez tous les cas.

2
Cyril Delander

VS 2019 + resharper crée un commutateur vide avec votre variable. Cliquez sur la première accolade " {" puis appuyez sur alt + enter . va voir Générer des étiquettes de commutateur . Capture d'écran ci-dessous:

Generate switch labels

0
Ali Karaca