Как вы быстро находите реализацию (-и) метода интерфейса?

Есть ли быстрый способ найти все реализации, а не ссылки на метод/свойство интерфейса /etc? Вот пример кода:

public class SomeClass : IBaseClass
{
  public Int32 GetInt()
  {
     return 1;
  }
}

public interface IBaseClass
{
  public Int32 GetInt();
}

public class SomeOtherClass
{
  IBaseClass _someClass;
  private TestMethod()
  {
    _someClass = new SomeClass();
    _someClass.GetInt();
  }
}

Я хочу быстро перейти к SomeClass.GetInt() при просмотре SomeOtherClass.TestMethod(). Если я нажму правой кнопкой мыши на _someClass.GetInt() и нажмите "Перейти к определению", он приведет меня к интерфейсу. Если я нажму "Найти все ссылки", я могу потенциально увидеть список всех видов использования... не только классы, реализующие метод GetInt().

Есть ли более быстрый способ найти это? Любые советы от других разработчиков? Мы используем D.I. для большинства наших зависимостей, что означает, что трассировка через глубоко вложенный код выполняется навсегда.

Ответ 1

Так как я не люблю использовать мышь во время кодирования, я обычно

  • переместите курсор над методом
  • введите ctrl + k clrl + t, чтобы открыть окно иерархии вызовов
  • переместитесь вниз, чтобы реализовать node.
  • Тип Возврат для перехода к выбранной реализации

AFAIK это самый быстрый способ найти реализацию метода без ReSharper.

(Кстати: вы можете использовать одну и ту же систему для перехода от реализации метода класса к соответствующему объявлению интерфейса: просто выберите корень)

Ответ 2

Alt-End сделает это в ReSharper, я полагаю.

Ответ 3

Без ReSharper лучший способ сделать это:

Найти файлы (Ctrl + Shift + F)  Найти что: "class * ISomeClass"  Найти параметры: "Использовать подстановочные знаки"

Это найдет всю реализацию, и вы сможете искать свою функцию в конкретной реализации.

Ответ 5

В всплывающем меню есть опция "Перейти к реализации", что очень удобно для этого.

Ответ 6

Если ваш интерфейс находится в той же библиотеке, что и ваша конкретная модель, к которой вы обычно захотите перейти, вы можете добавить "использование псевдонима" к конкретному объекту. "Использование" - это помощники, и это помогает.

using System;
using PrimaryImplementation = YourNamespace.YourConcreteObject;


public interface IYourInterface{

}

Когда вы попадаете в интерфейс, у вас есть быстрый (и грязный) способ добраться до основной реализации вашего интерфейса. F12- > F12