Переключатель перечисление автоматического заполнения


Я набирал переключатель с перечислением в VS 2013, и все операторы case заполнялись автоматически после того, как я закончил переключатель. Теперь я не могу это повторить. Я не галлюцинировал, переключатель автоматически заполнялся всеми вариантами перечисления, по одному на случай. Просмотрел MS docs для VS 2013 и не нашел его.

Я использую довольно много перечислений, и эта функция сэкономит мне массу времени, если я смогу найти то, что я сделал, чтобы вызвать его. Кто-нибудь может помочь?

8 60

8 ответов:

используйте код отрезанный sw (tab) (tab)

надеюсь, это поможет,

обратите внимание: этот ответ относится к выполнению автогенерации switch/enum, а также к использованию Resharper.

С помощью Visual Studio 2013 и Resharper 8.2, ранее упомянутые методы не работают. Вот как на самом деле заставить это поколение работать при использовании Resharper. Надеюсь, это сэкономит кому-то пятнадцать минут я потратил, чтобы разобраться.

выполнение "sw (tab) (tab)" будет только генерировать следующее:

switch (nameOfEnumVariable)
{

}

Resharper может генерировать метки с помощью Alt + Enter (если курсор находится в операторе switch) и выберите создать ярлыки переключателя как на следующем скриншоте:


Using the Resharper menu to fill in a switch statement


результат выглядит так:


enter image description here


выбранный ответ в основном правильный, Вам не нужен Resharper, как предлагали другие (по крайней мере, не с Visual Studio Professional 2012+).

1) введите " sw " затем "[tab][tab] "(как Marvin Smit сказал)

(как jmblack сказал) будет генерировать что-то вроде:

  switch (switch_on)
  {
            default:
  }

а то

2) вам нужно выбрать, какую вещь перечислять (switch_on будет выделено еще в этот момент). Поэтому введите перечисление (или вашу переменную перечисление типа) в то время как switch_on выделено и нажмите [Enter] [Enter].

(Я только что подтвердил, что это работает на моей машине под управлением VS2012, и я довольно уверен, что это то же самое, что я сделал на моей другой машине под управлением VS2013, и я не тестировал другие версии VS (ultimate/express/etc.))

Visual studio express 2012-без Resharper:

1) написать "переключатель"
2) Нажмите два раза вкладку, то вы увидите:

switch (switch_on)
{
        default:
}

(switch_on это выделены)
3) повторно введите switch_on в свой ПЕРЕЧИСЛИМОГО типа (не переменная вашего типа перечисления, это не сработало для меня)
4) Нажмите где-нибудь еще или нажмите enter, теперь вы должны увидеть все элементы перечисления заполнены:

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) Не забудьте изменить входные переключатель..

по умолчанию фрагмент Visual Studion работает правильно. Вы должны ввести "sw", а затем нажмите кнопку double"Tab".

Если вы используете Resharper, фрагмент не работает, потому что фрагмент Resharper имеет больший приоритет по умолчанию. Итак,вы должны отключить фрагмент resharper.

перейдите в "Resharper" -> "Template Explorer"-> "C#", затем снимите флажок "switch". Попробовать "ео" + двойной "закладку"

Я написал бесплатное расширение с открытым исходным кодом, основанное на Рослин, для Visual Studio 2015 и 2017, что не только позволяет заполнить регистр коммутатора для перечисления, но также может добавлять новые случаи, если значения перечисления (поля) были добавлены в определение типа перечисления, или сортировать список случаев по значению или имени.

Это здесь: Enum Case Generator

Это как использовать это:

enter image description here

Я думаю, что вам нужно, это:

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

Я проверил его и работает (в VS2013 по крайней мере).

Привет я просто столкнулся с той же проблемой, я только что узнал, что когда вы делаете:

switch(nameofvariable){
  default:
  break;
}

когда вы заполняете переменную, и вы дважды нажимаете на переменную по вашему выбору (перечисление), она даст вам все случаи