Extraire la méthode vers une interface déjà existante avec ReSharper

101

J'ajoute une nouvelle méthode à une classe qui implémente une interface, et j'aime utiliser le refactoring "Extract Interface" et ajouter simplement la méthode à l'interface. Mais il ne semble pas que ReSharper prenne en charge l'ajout d'une signature de méthode à une interface déjà existante.

J'ai l'impression de manquer quelque chose, je suis sûr que cela peut être fait d'une manière ou d'une autre. Peut-être que je devrais d'abord ajouter la signature de méthode à l'interface, mais c'est ainsi que je travaille parfois. Est-ce que je manque un raccourci, une fonctionnalité ou une mauvaise utilisation de ReSharper?

Johan Danforth
la source

Réponses:

192

Ctrl + Maj + R pour accéder au menu de refactoring, puis choisissez Pull Members Up ...

Vous pouvez choisir l'interface à laquelle vous souhaitez ajouter les déclarations et également sélectionner chaque méthode que vous souhaitez ajouter à l'interface.

Je dois aimer Resharper! ;-)

Russell Giddings
la source
5
ARgh! Je n'ai même pas essayé cette option parce que je pensais que cela concernait uniquement les classes de base héritées. Je pourrais parier qu'Extract Interface était le bon choix ... Quoi qu'il en soit, merci!
Johan Danforth
2
Oui, j'ai eu exactement la même expérience, Extraire l'interface semble l'option la plus intuitive mais bon, au moins, nous avons un moyen d'obtenir le résultat souhaité :-)
Russell Giddings
Je ne vois pas qu'il fonctionne ou existe dans la nouvelle version de ReSharper
RJN
Cela fonctionne toujours ... mais ne peut pas détecter l'interface existante et y mettre de nouvelles méthodes.
Ingweland
@RJN Assurez-vous que la classe dans laquelle vous êtes implémente déjà l'interface.
Greg Quinn