F12 - Перейдите к Реализация интерфейса

Когда вы не запускаете приложение, нажатие F12 (Go To Definition) на методе типа интерфейса приведет вас к самому интерфейсу.

Есть ли какая-либо ключевая комбо, которая существует (или та, которую я могу сделать), которая позволит мне предоставить реализацию по умолчанию для перехода или позволить мне быстро выбрать реализацию, к которой нужно перейти?

У нас есть несколько уровней в нашем приложении, и это сэкономит много времени, чтобы иметь возможность перейти прямо к реализациям Mock или Real, а не переходить к ним в исходном управлении.

Ответ 1

При использовании VS 2015 и выше:

Смотрите ответ ниже:

В Visual Studio 2015 Update 1 добавлено Edit.GoToImplementation, которое появилось в контекстном меню, но с ним не было сочетания клавиш по умолчанию.

В Visual Studio Update 2 мы добавили ярлык по умолчанию, Ctrl + F12.


При использовании VS 2013 и ниже:

У нас была такая же проблема, и мы начали использовать Resharper. У него есть замечательная функция реализации Goto, которая, насколько я помню, работает очень хорошо.

Проблема в том, что этот инструмент не является бесплатным (что, конечно, оправдано, поскольку предлагает гораздо больше, чем упомянутая функция).

Без этого я использую Find All References и быстро идентифицирую реализацию, глядя на путь (у нас есть интерфейсы, реализации и mocks, хорошо разделенные). Но вы, вероятно, определили эту возможность самостоятельно.

Кроме того, вы можете рассмотреть вариант, упомянутый в этом ответе (хотя это для методов интерфейса, а не целых реализаций):

  • наведите курсор на метод
  • нажмите CTRL + K CTRL + T, чтобы открыть окно Иерархия вызовов
  • перейти вниз к узлу орудия
  • введите Return, чтобы перейти к выбранной реализации

Ответ 2

Обновление Visual Studio 2015 1 добавлено Edit.GoToImplementation, которое появилось в контекстном меню, но по умолчанию не было сочетания клавиш, связанных с ним.

В Visual Studio Update 2 мы добавили по умолчанию ярлык Ctrl + F12.

Ответ 3

Visual Studio 2015 имеет команду "Edit.GoToImplementation", в которой вы можете применить сочетание клавиш.

Инструменты/Параметры/Среда/Клавиатура, затем введите "Редактировать .GoToImplementation" в текстовое поле show show. Я использую Shift + F12, поэтому я меняю "Использовать новый ярлык в" в текстовом редакторе, затем в "Нажмите клавиши быстрого доступа". Я нажимаю Shift + F12 и нажимаю "Назначить".

Ответ 4

Просто нажмите CTRL + F12 вместо просто F12. Это приведет вас непосредственно к реализации.

Ответ 5

Если привязка клавиш установлена, и она все еще не приводит вас к реализации, убедитесь, что ни у одного другого приложения нет такой привязки клавиш. В моем случае CTRL + F12 также использовался DeskPins. Стоило мне несколько минут, пока я не нашел это.

Ответ 6

Очень простое решение - поместить реализацию в тот же файл, что и интерфейс! ;-)

namespace Foo.Services
{
    public interface IService
    {
        ...
    }

    public class Service : IService
    {
        ...
    }
}