Извлечь метод в уже существующий интерфейс с ReSharper


101

Я добавляю новый метод в класс, реализующий интерфейс, и мне нравится использовать рефакторинг «Извлечь интерфейс» и просто добавить метод в интерфейс. Но похоже, что ReSharper не поддерживает добавление сигнатуры метода в уже существующий интерфейс.

Такое чувство, что я чего-то упускаю, уверен, что это можно как-то сделать. Возможно, мне сначала следует добавить сигнатуру метода в интерфейс, но иногда я работаю именно так. Мне не хватает ярлыка, функции или я неправильно использую ReSharper?

Ответы:


193

Ctrl + Shift + R, чтобы получить доступ к меню рефакторинга, затем выберите Pull Members Up ...

Вы можете выбрать интерфейс, в который хотите добавить объявления, а также выбрать каждый метод, который хотите добавить в интерфейс.

Должен любить Resharper! ;-)


5
Ах! Я даже не пробовал этот вариант, потому что думал, что он связан только с унаследованными базовыми классами. Могу поспорить, что Extract Interface был правильным выбором ... В любом случае, спасибо!
Йохан Данфорт,

2
Да, у меня был точно такой же опыт, извлечение интерфейса кажется наиболее интуитивно понятным вариантом, но, эй, по крайней мере, у нас есть способ достичь желаемого результата :-)
Рассел Гиддингс

Я не вижу, чтобы он работал или существует в новой версии ReSharper
RJN

Он все еще работает ... но не может обнаружить существующий интерфейс и поместить в него новые методы.
Ingweland

@RJN Убедитесь, что класс, в котором вы находитесь, уже реализует интерфейс.
Грег Куинн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.