Extraia o método para uma interface já existente com ReSharper

101

Estou adicionando um novo método a uma classe que implementa uma interface e gosto de usar a refatoração "Extrair Interface" e apenas adicionar o método à interface. Mas não parece que o ReSharper oferece suporte à adição de uma assinatura de método a uma interface já existente.

Parece que estou perdendo alguma coisa, tenho certeza de que isso pode ser feito de alguma forma. Talvez eu deva adicionar a assinatura do método à interface primeiro, mas às vezes é assim que trabalho. Estou perdendo algum atalho, recurso ou usando o ReSharper errado?

Johan Danforth
fonte

Respostas:

192

Ctrl + Shift + R para acessar o menu de refatoração e escolha Pull Members Up ...

Você pode escolher a interface à qual deseja adicionar as declarações e também selecionar cada método que deseja adicionar à interface.

Tenho que amar Resharper! ;-)

Russell Giddings
fonte
5
ARgh! Eu nem tentei essa opção porque pensei que tinha a ver apenas com classes base herdadas. Posso apostar que Extract Interface foi a escolha certa ... De qualquer forma, obrigado!
Johan Danforth
2
Sim, eu tive exatamente a mesma experiência, Extrair Interface parece a opção mais intuitiva, mas ei, pelo menos temos uma maneira de alcançar o resultado desejado :-)
Russell Giddings
Não vejo que esteja funcionando ou existindo na nova versão do ReSharper
RJN
Ele ainda está funcionando ... mas não pode detectar a interface existente e colocar novos métodos dentro dela.
Ingweland
@RJN Certifique-se de que a classe em que você está já implemente a interface.
Greg Quinn