Wyodrębnij metodę do już istniejącego interfejsu z ReSharper

101

Dodaję nową metodę do klasy, która implementuje interfejs i lubię używać refaktoryzacji „Extract Interface” i po prostu dodać metodę do interfejsu. Ale nie wygląda na to, że ReSharper obsługuje dodawanie sygnatury metody do już istniejącego interfejsu.

Czuję, że czegoś mi brakuje, jestem pewien, że można to jakoś zrobić. Może powinienem najpierw dodać podpis metody do interfejsu, ale czasami tak właśnie pracuję. Czy brakuje mi jakiegoś skrótu, funkcji lub źle używam ReSharper?

Johan Danforth
źródło

Odpowiedzi:

193

Ctrl + Shift + R, aby uzyskać dostęp do menu refaktoryzacji, a następnie wybierz opcję Pull Members Up ...

Możesz wybrać interfejs, do którego chcesz dodać deklaracje, a także wybrać każdą metodę, którą chcesz dodać do interfejsu.

Pokochaj Resharper! ;-)

Russell Giddings
źródło
5
ARgh! Nawet nie wypróbowałem tej opcji, ponieważ myślałem, że dotyczy to tylko dziedziczonych klas podstawowych. Mogę się założyć, że Extract Interface był właściwym wyborem ... W każdym razie, dzięki!
Johan Danforth,
2
Tak, miałem dokładnie to samo doświadczenie, Extract Interface wydaje się najbardziej intuicyjną opcją, ale hej, przynajmniej mamy sposób na osiągnięcie pożądanego rezultatu :-)
Russell Giddings
Nie widzę, żeby to działało lub istniało w nowej wersji ReSharper
RJN
Nadal działa ... ale nie może wykryć istniejącego interfejsu i umieścić w nim nowych metod.
Ingweland,
@RJN Upewnij się, że klasa, w której jesteś, już implementuje interfejs.
Greg Quinn