ReSharper Help

Go to Implementation

ReSharper | Navigate | Go To Implementation
Ctrl+Shift+Alt+B
ReSharper_GotoImplementation

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 doesn't show abstract classes and interfaces .

You can invoke this command from the editor, from the File Structure and other tool windows. If necessary, you can navigate in the opposite direction with the Go to Base Symbols command.

To navigate to implementation of a type or type member

  1. Place the caret on a symbol in the editor or select the symbol in a tool window.
  2. Choose menuPath in the main menu, press Ctrl+Shift+Alt+B, or click the symbol holding Ctrl+Alt keys.
  3. 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 in the Environment | Search & Navigation options page.
  4. If the symbol several implementations, they will be listed in a drop-down list. The drop-down list may contain items in both 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 on the desired item to open it in the editor.
    • Select the desired item by pressing UpArrow and DownArrow and the 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 go_to__show_in_find_results or press + on the numeric keypad.

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 options page.

If there are several implementations in an inheritance chain, Go to Implementation bypasses intermediate steps. Suppose that interface IDocument has the following inheritors:

Navigation_and_Search__Go_to_Implementation__hierarchy

However, when you invoke Go to Implementation upon the declaration or a usage of the IDocument interface, ReSharper shows only four inheritors:
Navigation_and_Search__Go_to_Implementation__drop-down_list

That's because DocumentBase, being an abstract class, doesn't contain implementation of the IDocument interface, as well as ManagedDocumentBase and VsDocumentCommon.

This feature is supported in the following languages/technologies:

C# VB.NET C++ HTML ASPX Razor JavaScript TypeScript CSS XML XAML RESX Build Scripts
feature_availablefeature_availablefeature_availablefeature_availablefeature_availablefeature_available

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.

See Also

Last modified: 3 September 2015