Как вытащить метод из своего класса (и в новый или в существующий)? - PullRequest
9 голосов
/ 03 мая 2010

Какой самый простой способ вытащить существующий метод из его класса в новый класс с помощью Visual studio 2010 / Resharper?

Редактировать: я использую Resharper версии 5.

Ответы [ 3 ]

7 голосов
/ 03 мая 2010

Начиная с

public void Method () {}

  1. Сначала сделайте метод статическим, используя команду «Make Method Static».

    public static void Method () {}

  2. Затем добавьте локальную переменную типа нового класса:

    public static void Method () {Class2 me = new Class2 ();}

  3. Затем используйте Ввести параметр

    Метод public static void (Class2 me) {}

  4. Затем используйте «Сделать метод нестатическим». В классе 2:

    public void Method () {}

4 голосов
/ 03 мая 2010

То же, что и выше, но я бы не делал преобразование в static-метод вручную. Откройте меню «Refactor this» (используя, конечно, комбинации клавиш Ctrl + Shift + R), затем выберите «Make method static», затем «Refactor this» -> «Move».

Примечание:

Если вы говорите о перемещении метода в иерархии классов, вы можете использовать «Push-элементы вниз» или «Pull-элементы вверх»

1 голос
/ 13 сентября 2013

В современной версии Resharper есть Рефакторинг Move. Вы либо нажимаете F6, когда курсор находится в сигнатуре метода, либо вырезаете и вставляете код в новое местоположение, и Resharper предлагает вам применить рефакторинг.

...