Можно ли принудительно обновить интерфейс? - PullRequest
6 голосов
/ 08 октября 2009

В resharper возможно ли принудительно обновить интерфейс?

В основном у меня есть класс, который наследует от интерфейса, но этот класс постоянно меняется, поэтому мне нужно отразить изменения в интерфейсе, иначе VS жалуется, что я не реализую что-то, поскольку сигнатура метода изменилась.

Мне было интересно, есть ли способ в резарпере сказать "Обновить этот класс его интерфейсом"?

Есть идеи?

Ответы [ 4 ]

23 голосов
/ 13 июня 2012

Хотя это не лучший способ разработки, иногда необходимо обновить интерфейс на основе измененного класса.

Вы можете обновить интерфейс с помощью опции Подтянуть членов * от Resharper.

  1. Используйте опцию Pull Members Up в меню рефакторинга
  2. Выберите интерфейс, который вы хотите обновить в качестве базового типа
  3. Выберите участников, которых вы хотите добавить в интерфейс

Члены теперь добавлены в интерфейс.

2 голосов
/ 08 октября 2009

Если вы используете ReSharper для изменения метода, он может / также изменит определение интерфейса.

Например, если вы используете для метода функциональность ReSharper Rename , определение его интерфейса будет переименовано. Кроме того, если вы используете в методе функцию ReSharper Change Signature , она спросит вас, хотите ли вы также выполнить рефакторинг на интерфейсе.

0 голосов
/ 08 октября 2009

Разрешение интерфейсу следовать реализации - это неверное направление. Сначала вы должны определить в своем интерфейсе, что вам нужно, а затем реализовать это в классе поддержки. Вы не должны ожидать, что инструмент будет поддерживать нежелательные рабочие процессы вместо этого ...

Если вы идете правильным путем, R # предоставит вам всю необходимую поддержку: вы можете реорганизовать существующие методы через Refactor | Rename ... , Refactor | Change Signature ... и Участники реализации .

0 голосов
/ 08 октября 2009

Если вы меняете подпись метода, определенного в интерфейсе, измените его с помощью Refactor - Изменить подпись ... . Затем ReSharper спросит вас, хотите ли вы изменить подпись метода интерфейса.

Кроме этого, я не могу представить, как ReShaper узнает, что и как обновлять.

...