Меню рефакторинга отсутствует в Visual Studio 2015

87

Мне не удается найти контекстное меню, вызываемое правой кнопкой мыши в Visual Studio 2015. Я знаю, что с моим проектом или файлом, над которым я работаю, все в порядке. Я могу найти контекстное меню рефакторинга, вызываемое правой кнопкой мыши в Visual Studio 2013. Однако в Visual Studio 2015 контекстное меню рефакторинга отсутствует в контекстном меню, вызываемом правой кнопкой мыши.

Куда оно делось? Как мне его вернуть?

Ваше предложение не может включать меню ПравкаРефакторинг .

Я попытался сбросить настройки Visual Studio до значений по умолчанию, используя меню « Инструменты» → « Параметры импорта и экспорта», и это тоже не вернуло меню.

Г-н Янг
источник
Я хочу сказать, что не хватает меню рефакторинга строки меню.
Мистер Янг,
В какое-то конкретное время это не произойдет? как переименование метода или извлечение метода? или просто везде?
Kritner
Кажется, проблема существует везде.
Мистер Янг,
1
Он больше не работает, если код не компилируется. Раньше вы могли использовать его с неполным кодом.
PRMan,

Ответы:

93

Некоторые инструменты рефакторинга были перемещены или, по крайней мере, доступны другим способом, чем раньше.

Используя в качестве примера рефакторинг метода extract, вы все равно можете использовать эту функцию; это просто не так, как раньше:

Выберите части для извлечения

Щелкните правой кнопкой мыши

Щелкните правой кнопкой мыши

Быстрые действия

Быстрые действия

Щелкните метод извлечения

Щелкните метод извлечения

Я думаю, они изменили его, чтобы он стал более «ReSharper». Однако все функциональные возможности должны быть там.

Вот дополнительная информация о рефакторинге в Visual Studio 2015 - надеюсь, это поможет! Рефакторинг (C #)

Критнер
источник
да, к этому обязательно нужно привыкнуть. Могу поспорить, что это более интуитивно
понятно
2
Спасибо за скриншоты. Я не уверен, что в противном случае нашел бы, куда это было перемещено! :-)
Мистер Янг
1
К вашему сведению: похоже, что в какой-то версии VS есть ошибка, связанная с этой функциональностью, VS вылетает при рефакторинге некоторого кода для извлечения нового метода
Лиам
2
Хорошее объяснение. + Я
обожаю
1
@BarthoBernsmann это зависит от контекста, вы уверены, что у вас есть допустимый фрагмент кода в методе, выделенном для извлечения?
Kritner 02
2

Вам больше не нужно получать доступ к рефакторингу с помощью щелчка правой кнопкой мыши.

Рекомендуется использовать сочетания клавиш в Visual Studio.

Все возможные сочетания клавиш см. В разделе Сочетания клавиш по умолчанию в Visual Studio, Refactor .

Ашраф Абусада
источник
1
Данная ссылка ведет на страницу для Visual Studio 2008. Список для VS 2015 находится на msdn.microsoft.com/en-us/library/da5kh0wa.aspx#bkmk_refactor .
Теофил
Краткая версия: CTRL + R, M. Кроме того, Edit> Refactor> Extract Method ... (отображается, только когда выделен блок кода).
Крис
1

Возможно, вам потребуется собрать проект, чтобы он заработал.

См. Раздел « Редактирование кода веб-форм ASP.NET в Visual Studio 2013 | Документы Microsoft . (Если он отсутствует, значит, я использую пример, предоставленный Microsoft.) В разделе « Рефакторинг и переименование» см. Извлечение метода на странице C # . Когда я следую инструкциям, я не могу найти функцию для извлечения кода в метод. Когда я попробовал меню «Правка», он сказал, что у меня нет действительного кода. Затем я построил проект, и функция извлечения кода была доступна и работала.

user34660
источник
0

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

Дэйв
источник
2
Мой OP специально упомянул рефакторинг "Right-Click". Я ненавижу лампочку, поэтому у меня вопрос.
Мистер Янг
0

Ctrl+ .- это сочетание клавиш для извлечения метода в Visual Studio 2015 и более поздних версиях.

Ctrl+ M, Rбольше не работает в новых версиях.

Сохаиб Яхья
источник