Extraiga el método a la interfaz ya existente con ReSharper

101

Estoy agregando un nuevo método a una clase que implementa una interfaz, y me gusta usar la refactorización "Extract Interface" y simplemente agregar el método a la interfaz. Pero no parece que ReSharper admita agregar una firma de método a una interfaz ya existente.

Parece que me falta algo, estoy seguro de que se puede hacer de alguna manera. Tal vez debería agregar primero la firma del método a la interfaz, pero esta es la forma en que trabajo a veces. ¿Me falta algún atajo, función o uso incorrecto de ReSharper?

Johan Danforth
fuente

Respuestas:

192

Ctrl + Shift + R para acceder al menú de refactorización, luego elija Pull Members Up ...

Puede elegir la interfaz a la que desea agregar las declaraciones y también seleccionar cada método que desea agregar a la interfaz.

¡Me encanta Resharper! ;-)

Russell Giddings
fuente
5
¡ARgh! Ni siquiera probé esa opción porque pensé que tenía que ver solo con clases base heredadas. Apuesto a que Extract Interface fue la elección correcta ... De todos modos, ¡gracias!
Johan Danforth
2
Sí, tuve exactamente la misma experiencia, Extract Interface parece la opción más intuitiva, pero bueno, al menos tenemos una manera de lograr el resultado deseado :-)
Russell Giddings
No veo que funcione o exista en la nueva versión de
ReSharper
Todavía está funcionando ... pero no puede detectar la interfaz existente y poner nuevos métodos dentro de ella.
Ingweland
@RJN Asegúrese de que la clase en la que se encuentra ya implemente la interfaz.
Greg Quinn