ReSharper 2023.1 Help

Find Usages of Related Entities

This command enables you to find usages of entities that are somehow related to the selected symbol (for example, textual occurrences, dynamic references, and so on) in the specific scope. You can invoke this command from the Solution Explorer, from File Structure and other tool windows.

Find usages of related entities from the current context

  1. Place the caret at a symbol in the editor or select the symbol in a tool window.

  2. Press Shift+Alt+F7 or choose ReSharper | Find | Find Usages Advanced in the main menu.

  3. In the Search Properties dialog that opens, you can customize your search.

  4. Use checkboxes in the Find column to specify what kind of relates symbols should be included in the results. Depending on the original symbol, the set of options varies. For example, if it is a type, you can look for usages of members; if it is a delegate, you can look for delegate target, and so on. For more information, see Find options for different symbols.

  5. In the Scope column, choose the scope of the search.

  6. If the original symbol is an overriding member in a derived class or an implemented interface member, ReSharper displays the original member and all its base members in the Search field. You choose whether to look for usages of the base member or those of the overriding member.

  7. Click Find.

  8. If a single usage is found, ReSharper will navigate you to the usage directly in the editor. Two or more search results will be shown in the Find Results window, where you can conveniently explore and analyze the usages.

Find usages of entities related to any symbol from the solution and referenced assemblies

  1. Search the desired symbol using one of the following commands:

  2. When the desired symbol appears in the results list, select it using the keyboard and then press Shift+Alt+F7.

  3. If a single usage is found, ReSharper will navigate you to the usage directly in the editor. Two or more search results will be shown in the Find Results window, where you can conveniently explore and analyze the usages.

ReSharper. 'Search Properties' dialog

You can change the default behavior so that even the single found usage is also displayed in the Find Results window. To do so, clear the Go to Usage: if there is only one result.... checkbox on the Environment | Search & Navigation | General page of ReSharper options (Alt+R, O).

Find options for different symbols

Usages

Usages of members

Derived types

Delegate targets

Textual occurrences

Late-bound references 1)

Extending interfaces

Implementations

Implementing methods

Include overloading

Overriding…

Classes

Supported

Supported

Supported

Supported

Constants

Supported

Supported

Supported

Constructors

Supported

Supported

Delegates

Supported

Supported

Supported

Enumeration members

Supported

Supported

Supported

Enumerations

Supported

Supported

Supported

Events

Supported

Supported

Supported

Available 2)

Fields

Supported

Supported

Supported

Files

Supported

Supported

Supported

Indexers

Supported

Supported

Supported

Available 3)

Available 4)

Interfaces

Supported

Supported

Supported

Supported

Supported

Methods (base)

Supported

Supported

Supported

Supported

Available 5)

Methods (overriding, standalone)

Supported

Supported

Supported

Available 6)

Available 7)

Namespaces

Supported

Supported

Operators

Supported

Supported

Supported

Parameters

Supported

Supported

Supported

Properties

Supported

Supported

Supported

Available 8)

Structs

Supported

Supported

Supported

Type parameters

Supported

Supported

Variables

Supported

Supported

Supported

1) Late-bound references are references to members of objects that are bound to a specific type as late as at runtime. Late-bound references are allowed in VB.NET, ASP.NET, and XAML. Starting from version 4.0, late binding is also available in C# with the dynamic keyword.

For example, obj.DoSomething() in the following VB.NET subroutine is a late-bound reference since it's not known before runtime if an object passed to the subroutine does actually have a method DoSomething():

Option Strict Off Module LateBind Public Sub DoWork(ByVal obj As Object) obj.DoSomething() End Sub End Module

2) Available for events with virtual modifier. (back)

3) If available. (back)

4) Available for indexers with virtual modifier. (back)

5) If available. (back)

6) If available. (back)

7) If available. (back)

8) If available. (back)

This feature is supported in the following languages and technologies:

Language: C#

Language: VB.NET

Language: C++

Language: HTML

Language: ASP.NET

Language: Razor

Language: JavaScript

Language: TypeScript

Language: CSS

Language: XML

Language: XAML

Language: Resx

Language: Build Scripts

Language: Protobuf

Language: JSON

Feature is available in C#

Feature is available in Visual Basic

Feature is available in C++

Feature is available in HTML

Feature is available in ASP.NET

Feature is available in Razor

Feature is available in JavaScript

Feature is available in TypeScript

Feature is available in CSS

Feature is not available in XML

Feature is available in XAML

Feature is available in Resource files

Feature is not available in build script files

Feature is available in Protobuf

Feature is not available in JSON

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.

Last modified: 22 September 2022