Некоторые сопоставления клавиш ReSharper не работают. Как добавить параметр через рефакторинг? - PullRequest
1 голос
/ 14 октября 2010

У меня ReSharper 5.0 для C #, работающий на VS 2008 SP1.Большинство комбинаций клавиш, таких как (Ctrl + R, Ctrl + R) для переименования идентификатора или (Ctrl + Shift + T) для перехода к файлу, работают.

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

Комбинации клавиш (Ctrl + R, Ctrl + P) привязаны к команде (ReSharper_IntroParameter), которая в данный момент недоступна

Я могу легко переименовать этот метод с(Ctrl + R, Ctrl + R).Это я или ReSharper, который терпит неудачу здесь?

Ответы [ 3 ]

2 голосов
/ 14 октября 2010

при наведении курсора на закрытый метод

Ввести параметр Рефакторинг доступен только в том случае, если в теле есть идентификатор или значение метода , который вы хотите преобразовать в параметр.Похоже, вы хотите рефакторинг Change Signature , который доступен через Ctrl + R Ctrl + S всякий раз, когда точка вставки находится в имени метода.

Вы можете увидеть (некоторые из), что находится в контексте с Ctrl + Shift + R , который является ярлыком для ReSharper | Refactor | Refactor this...

1 голос
/ 14 октября 2010

Я думаю, вы, возможно, путаете «Введение параметра» с понятием «добавление параметра в метод».Я не верю, что ReSharper имеет ярлык для , просто добавляет параметр в метод.«Ввести параметр» предназначен для того, чтобы вы выбрали выражение и применили этот ярлык, после чего ReSharper добавит параметр в ваш текущий метод на основе этого выражения .Это означает, что любое выделенное вами выражение будет перемещено в вызывающую сторону метода и передано в качестве аргумента для этого нового параметра.

1 голос
/ 14 октября 2010

На основании сообщения об ошибке отображение клавиш работает просто отлично. Visual Studio находит и пытается выполнить команду. Сама команда сообщает о себе как о недоступной.

Вероятно, это указывает на то, что команда "IntroParameter" просто недоступна в контенте, в котором вы пытаетесь ее использовать.

...