ReSharper 2019.2 Help

Go to Implementation

This command lets you jump from a base type or member to any of its end implementations, bypassing intermediate steps in the inheritance chain. In other words, it works similar to Go to Derived Symbols but it does not show abstract classes and interfaces.

Alternatively to navigation, you can visually explore full inheritance hierarchy of the symbol.

If the symbol has only one implementation, ReSharper will navigate to it directly. If necessary, you can change the default behavior so that even the single symbol is displayed in the drop-down list. To do so, clear the Go to Base/Inheritor if there is only one... check box on the Environment | Search & Navigation page of ReSharper options.

If the symbol has several implementations, they will be listed in a drop-down list. The drop-down list may contain items in both bold and regular font. Bold indicates that an item has direct inheritance, while the regular font is used for indirect inheritance. You can do one of the following:

Click the desired item to open it in the editor.

Select the desired item by pressing Up and Down and then press Enter to open it in the editor.

Start typing to filter results. Note that you can use CamelHumps here. If necessary, press Esc once to clear the filtering.

To view and analyze the list of matched items in the Find Results window, click Show in Find Results, press Shift+Enter or + on the numeric keypad.

This command is also available in the Navigate To shortcut Ctrl+Shift+G.

If the item you navigate to belongs to the current solution, ReSharper opens the corresponding file in the editor and places the caret at the symbol declaration. If it is found in referenced libraries, ReSharper navigates according to the settings defined on the Tools | External Sources page of ReSharper options.

Here is an example of how Go to Implementation bypasses intermediate steps. Suppose that the IDocument interface has the following inheritors: When you invoke the Go to Implementation upon the declaration or a usage of the IDocument, ReSharper shows only two inheritors: That is because other classes are abstract and do not contain implementation of the IDocument.

This feature is supported in the following languages and technologies:

The instructions and examples given here address the use of the feature in C#. For details specific to other languages, see corresponding topics in the ReSharper by Language section.