2010-02-04 22 views
15

Czy istnieje sposób na pokazanie wszystkich klas implementujących określoną metodę z poziomu interfejsu. Jeśli klikniesz F12 w Visual Studio podczas wywołania metody, przejdziesz do jego definicji. Jeśli jest to interfejs, to musisz iść i poszukać klasy. Byłabym miło, gdyby udało mi się uzyskać wyskakujące okienko i wybrać jedną z klas, która implementuje interfejs ... Czy to istnieje?Definicja przejścia do programu Visual Studio - interfejsy

Odpowiedz

1

Reflector może to zrobić (przynajmniej w całym zespole, które ma otwarte).

(Oczywiście nie może być realizacja w każdym zespole, a więc pełne poszukiwanie każda realizacja wymagałoby sprawdzenia każdy montaż.)

2

Używam DevExpress/CodeRush Go To Implementator plugin (wszystko za darmo).

Jeśli nie zainstalować DevExpress jej nie oczywiste, jak go uruchomić, to powinniśmy użyć shift - ctrl - alt - o klawiatura krótki, ale zalecam dodanie go do menu Plik dodając następujący wpis rejestru:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Developer Express\CodeRush for VS\11.2] 
"HideMenu"=dword:00000000 

(drop \Wow6432Node\ jeśli jesteś na 32 bit)

11

i bez, w opóźnianie wszelkich rozszerzeń Visual Studio ...

Po kliknięciu prawym przyciskiem myszy i wybraniu opcji "znajdź wszystkie odniesienia" lub naciśnięciu klawisza f12 + przesunięcie lista implementacji zostanie zwrócona w wynikach wyszukiwania symbolu; uporządkowane według interfejsu, klasy, wywołania metody.

Aktualizacja

zainstalować VS 2015, kliknij prawym przyciskiem - GoToImplementation (jeśli masz jedną implementację interfejsu, VS będzie przejść bezpośrednio do niego, jeśli masz dwa lub więcej, VS będzie ich lista)

+0

CTRL - F12 (GoToImplementation), Visual Studio 2015 –

7

Oczywiście już istnieje w Visual Studio! Jest tam od zawsze.

Kliknij prawym przyciskiem myszy swój kod (np. Własność) i wybierz "Wyświetl hierarchię połączeń". W oknie Hierarchia połączeń wybierz folder Narzędzia.

Tutaj jesteś. Dlaczego Resharper? Oczywiście nie jest tak skomplikowane, jak przejść do realizacji z resharper, który pozwala na bezpośrednie zapytanie w interfejsie, ale wystarczy tylko właściwość lub metoda z tego interfejsu powinna wystarczyć. Ex:

public interface IModule 
{ 
int Count { get; set; } 
} 

public class Module : Imodule 
{ 
    public int Count {get; set;} 
} 

public class Module2 : Imodule 
{ 
    public int Count {get; set;} 
} 

prawym przyciskiem myszy na właściwości Count (gdziekolwiek - wewnątrz klasy lub wewnątrz interfejsu) i wybrać „Widok połączeń Hierarchia”, należy powiedzieć, która klasa implementuje go, a zatem cały interfejs.

Na początku wszyscy kochamy Resharper, z czasem wszyscy go nienawidzimy!

2

Inną alternatywą jest umieszczenie kursora na metodzie, którą chcesz zbadać, a następnie naciśnij ctrl +, (klawisz kontrolny i przecinek). Wyświetli to nawigację do okna dialogowego z interfejsem i implementacją metody.

Powiązane problemy