The Go to Implementation feature enables you get the list of all found implementations of a base symbol and navigate directly to the desired one. It works similar to the Go to Derived Symbols feature, but it doesn't show abstract classes and interfaces.
- Place the caret at the declaration or usage of a type or type member.
Do one of the following:
- On the main menu, choose ReSharper | Navigate | Go to Implementation
- Click Go to Implementation on the context menu.
- Press Ctrl+Shift+Alt+B.
If the symbol has only one implementation, ReSharper navigates you directly to it.
If the symbol has several implementations, they are displayed in the drop-down list. So you can do one of the following:
- To view the list of implementations in the Find Results window, click Show in Find Results or press + on the numeric keypad.
- To navigate directly to an implementation, select it in the drop-down list and press Enter.
If a symbol belongs to the current solution, ReSharper opens the corresponding file in the editor and places the caret at the symbol declaration. If a symbol is found in referenced libraries, ReSharper navigates according to the settings defined on the External Sources page of the Options dialog box. For more information, see External Sources.
If there are several implementations in an inheritance chain, ReSharper
bypasses intermediate steps. For example, the IDocument interface has the following inheritors:
When you invoke Go to Implementation on the declaration or any usage of the IDocument interface, ReSharper shows only two inheritors:
That's because DocumentBase, being an abstract class, doesn't contain implementation of the IDocument interface, as well as ManagedDocumentBase and VsDocumentCommon.
The drop-down list that shows implementations may contain items in both bold and regular font. Direct inheritors are displayed in bold, indirect inheritors - in regular.