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

101

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

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

Йохан Данфорт
источник

Ответы:

193

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

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

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

Рассел Гиддингс
источник
5
Ах! Я даже не пробовал этот вариант, потому что думал, что он связан только с унаследованными базовыми классами. Могу поспорить, что Extract Interface был правильным выбором ... В любом случае, спасибо!
Йохан Данфорт,
2
Да, у меня был точно такой же опыт, извлечение интерфейса кажется наиболее интуитивно понятным вариантом, но, эй, по крайней мере, у нас есть способ достичь желаемого результата :-)
Рассел Гиддингс
Я не вижу, чтобы он работал или существует в новой версии ReSharper
RJN
Он все еще работает ... но не может обнаружить существующий интерфейс и поместить в него новые методы.
Ingweland
@RJN Убедитесь, что класс, в котором вы находитесь, уже реализует интерфейс.
Грег Куинн