ReSharper
 
Get ReSharper
Get your hands on the new features ahead of the release by joining the Early Access Program for ReSharper 2025.1! Learn more

Go to Implementation

Last modified: 23 September 2024

This command helps you find actual implementations of types and members — in other words, to locate the source code they execute. For example, from a base type or member, you can jump to any of its end implementations bypassing intermediate steps in the inheritance chain; from a usage of an interface member, you can get to all places where the member is implemented.

The command is available on:

  • usages of types and members: it will list all places where they are implemented;

  • type declarations: it will list all derived types that implement their members, if any;

  • declarations of abstract or interface members that don't have implementation bodies: it will list all inheritors that have implementations.

It is not available on member declarations with an implementation body, including virtual members and default interface methods. Use Go to Derived Symbols to check inheritors of such members.

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

Here is an example of how Go to Implementation bypasses intermediate steps. Suppose that the IDocument interface has the following inheritors:

ReSharper: Go to implementation. Hierarchy

When you invoke the Go to Implementation upon the declaration or a usage of the IDocument, ReSharper shows only two inheritors:

ReSharper: Go to implementation. Drop-down list

That is because other classes are abstract and do not contain implementation of the IDocument.

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 in referenced libraries, ReSharper navigates according to the settings defined on the Tools | External Sources page of ReSharper options Alt+R, O.

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 more information about other languages, refer to corresponding topics in the Languages and frameworks section.