Go to Implementation
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, from Structure 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:
When you invoke the Go to Implementation upon the declaration or a usage of the IDocument
, JetBrains Rider shows only two inheritors:
That is because other classes are abstract and do not contain implementation of the IDocument
.
Navigate to implementation of a type or a type member
Place the caret at a symbol in the editor or select the symbol in the Structure tool window.
Press Ctrl+F12 or choose
from the main menu . Alternatively, you can press Ctrl+Shift+A, start typing the command name in the popup, and then choose it there.If the symbol has only one implementation, JetBrains Rider will navigate to it directly.
If the symbol has several implementation, they will be listed in a drop-down. The 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.
To view and analyze the list of matched items in the Find window, click Open in Find Tool Window , press Shift+Enter or + on the numeric keypad .