Visual Studio 2015 Как быстро переместить существующий код после оператора if во вновь размещенные фигурные скобки?

Итак, если у меня есть что-то вроде этого:

 if (a>b)
      return true;

и позже я решаю, что хочу изменить его на это:

if (a>b)
{
     a++;
     return true;
}

Есть ли более быстрый способ, чтобы существующий код в операторе if попадал непосредственно во вновь созданные фигурные скобки? Потому что в настоящее время, если бы я добавил фигурные скобки после создания оператора if в первом примере, мне пришлось бы вырезать «return true» из-под новых фигурных скобок и вставить его между вновь созданными фигурными скобками. Вот как это выглядит:

if (a>b)
{
}
return true;

и это довольно раздражает. Есть ли исправление или нам нужно вручную скопировать и вставить существующую строку между скобками?

P.S. Я использую Microsoft Visual Studio 2015 версии 3 и программирую на С#, но я думаю, что эта проблема возникает и на других языках, таких как С++.


person Capn Jack    schedule 23.09.2016    source источник
comment
Вы можете написать фрагмент с объемным текстом: Пошаговое руководство, ссылка   -  person 15ee8f99-57ff-4f92-890c-b56153    schedule 23.09.2016


Ответы (5)


Выделите код и нажмите Alt + стрелка вверх. Переместите код вниз с помощью Alt + стрелка вниз. Работает и с несколькими линиями. Кроме того, вам не нужно выделять всю строку. Пока выделен один символ, все работает.

https://blogs.msdn.microsoft.com/zainnab/2013/07/01/visual-studio-2013-preview-moving-lines-of-code/

person Alex    schedule 23.09.2016
comment
Чувак. Вы правите. - person Jakotheshadows; 23.09.2016
comment
Это намного лучше, чем то, что я делал раньше, спасибо! - person Capn Jack; 23.09.2016

Я не знаю более быстрого способа, но вы можете попробовать сначала добавить нижнюю скобку, а затем верхнюю скобку рядом с if. Единственная проблема заключается в том, что он автоматически отформатирует нижнюю фигурную скобку, которую вы добавляете, если вы не вернетесь назад, не удалите и не добавите ее постфактум.

Другой вариант, который может быть не очень быстрым, состоит в том, чтобы выделить «вернуть true», щелкнуть правой кнопкой мыши для контекстного меню и выбрать «окружить с» и выбрать, если (или пока, или для). Это создаст блок и переместите курсор, чтобы вы могли ввести условие. (Аккорд горячих клавиш — Ctrl+K, Ctrl+S.)

person Joe T.    schedule 23.09.2016

Некоторые варианты:

  • Пользователь#. Затем, когда вы собираетесь добавить a++;, сначала введите открывающую фигурную скобку с курсором непосредственно перед «r» в return, и он добавит за вас закрывающую скобку, а когда вы нажмете Enter, вы готовы ввести a++; . Всего 1 или 2 нажатия клавиш в зависимости от того, что вы хотите. (Это настраивается в R#, поэтому ваш пробег будет зависеть от этого).

  • Возможно, субъективно, но это одна из веских причин не писать код, подобный оригиналу, а вместо этого использовать фигурные скобки даже для одного блока операторов. Если это слишком неприятно для вас, поместите отдельные операторы в ту же строку, что и if().

person sellotape    schedule 23.09.2016

У Алекса отличный ответ. В качестве альтернативы, если вы не хотите перемещать код в if после его создания, вы также можете выделить нужный код в теле. Затем нажмите ctrl + K, S (или найдите «Surround with» в контекстном меню), введите if и нажмите Enter.

Это создаст оператор if и встроит выделенный вами код в тело файла if.

person Lord Drake    schedule 23.09.2016

Расширение MissingBraces позволяет добавлять фигурные скобки if/else/for/foreach как быстрое действие.

person Sergey Vlasov    schedule 24.09.2016
comment
не могли бы вы уточнить это? Я не знаю, что такое быстрое действие или как работает MissingBraces. Извините за нубство, но это звучит круто, возможно, это то, что я ищу. - person Capn Jack; 25.09.2016
comment
@CapnJack Посещали ли вы visualstudiogallery.msdn.microsoft.com/ ? - person Sergey Vlasov; 26.09.2016
comment
Да, я просто щелкнул по вашей гиперссылке, и она рассказала мне все, что мне нужно, спасибо, все работает :) - person Capn Jack; 27.09.2016