2010-05-03 12 views

Répondre

6

A partir de

public void Méthode() {}

  1. Tout d'abord, faire la méthode statique en utilisant la commande "Make Méthode statique" .

    Méthode public static void() {}

  2. Ensuite, ajoutez une variable locale du type de la nouvelle classe:

    Méthode public static void() {Classe2 me = new Classe2(); }

  3. Ensuite, utilisez le paramètre Introduire

    Méthode public static void (Classe2 moi) {}

  4. Ensuite, utilisez "Make Method non-Static". En class2:

    public void Méthode() {}

+0

Je ne vois pas l'étape , est-ce implicite? Je ne vois pas non plus le gain de l'étape variable => paramètre. – Slampen

+0

La méthode se déplace lorsque vous (1) ajoutez le paramètre puis (2) rendez la méthode non statique, ce qui transforme le paramètre en pointeur "this", ce qui fait de la méthode une méthode d'instance de cette classe. –

+0

Après avoir essayé les deux méthodes, j'ai réattribué le chèque à cette réponse. – Slampen

4

comme ci-dessus, mais je ne ferais pas la conversion à la méthode statique manuellement. Relevez le menu "Refactor this" (en utilisant les raccourcis bien sûr, ctrl + shift + R), puis sélectionnez "Make method static", puis "Refactor this" -> "Move".

Note:

Si vous parlez le déplacement d'une méthode dans une hiérarchie de classes, vous pouvez utiliser « Push membres vers le bas » ou « Tirez les membres des »

+0

Je ne voulais pas dire que vous deviez rendre la méthode statique manuellement. Je voulais dire "Make Method Static". Aussi, faire un "Move" suivant laissera la méthode statique, et elle n'était pas statique avant. –

1

Dans la mise à jour ReSharper, il y a le refactoring de mouvement. Vous appuyez sur F6 lorsque le curseur est dans la signature de la méthode, ou vous coupez le code au nouvel emplacement, et Resharper vous propose d'appliquer le refactoring.