ReSharper 2025.2 Help

转到声明

使用此命令从任何符号用法导航到符号的声明。 您可以从 解决方案资源管理器、 文件结构窗口 和其他工具窗口调用此命令。

要以相反方向导航(符号用法),当您已经 在符号声明上 时,可以调用 转到声明 命令,或者使用 转到符号的用法 命令。

导航到符号的声明

  1. 将插入符号放在 编辑器 中的符号上,或在工具窗口中选择符号。

  2. 在主菜单中选择 ReSharper | 导航 | 转到声明 ,按 Control+B ,或在按住 Ctrl 键的同时单击符号。

  3. 如果命令返回单个结果,ReSharper 将直接导航到该结果。 如果有多个结果,它们将列在下拉列表中,您可以执行以下操作之一:

    • 单击所需的项目以在编辑器中打开它。

    • 通过按 选择所需的项目,然后按 输入 在编辑器中打开它。

    • 要在 查找结果 窗口中查看并 分析匹配项列表,请单击 在“查找结果”中显示 ThemedIcon.SearchResults.Screen.(Gray).png ,按 Shift+Enter 或数字键盘上的 +

默认情况下, 转跳到声明 Ctrl + 左键单击以及中键单击一起使用。 要禁用此功能,请清除 编辑器中的丰富鼠标导航 复选框,该复选框位于 ReSharper 选项 的 环境 | 搜索与导航 页面上 Alt+R, O 。 您还可以 Ctrl+Shift 单击符号的使用,以在 Peek Definition视图中显示其声明。 如果您想禁用此功能,请清除 使用 Ctrl+Shift 点击在预览视图中打开结果 复选框。

如果您导航到的项目属于当前解决方案,ReSharper 将在编辑器中打开相应的文件并将插入符号放在符号声明处。 如果它位于引用的库中,ReSharper 将根据 ReSharper 选项 的 工具 | 外部来源 页面上定义的设置进行导航 Alt+R, O

在声明上调用此命令

由于 转到声明 (包括其 Ctrl 单击访问)是最常用的命令之一,ReSharper 优化了您的导航体验,使您可以在与声明符号使用相关的导航场景中使用此命令,因此即使您的插入符号已经位于符号声明处,您也可以调用 转到声明 以研究符号使用。

要配置 转到声明 在声明上调用时的行为,请使用 ReSharper 选项 的 环境 | 搜索与导航 页面上的 智能转到声明行为 选择器 Alt+R, O ,该选择器提供以下选项:

  • 显示“导航到”菜单 — 显示 导航到 菜单,其中包含声明上上下文可用的所有导航目标。 此菜单也始终可通过 Control+Shift+G 访问。

  • 显示符号用法弹窗 — 列出声明符号的所有使用。 您也可以始终通过 符号使用命令 Control+Alt+F7 获取使用列表。

  • 迭代用法 — 将相应的命令添加到导航菜单中,从而启用“使用迭代”模式,该模式在 编辑器 的左上角以一个小弹出窗口表示:

    转到声明的使用感知行为

    在“使用迭代”模式下,您可以按以下方式导航符号使用:

    • 调用 转到声明 以转到下一个使用(如果有),依此类推,逐步导航所有符号使用。 解决方案中符号使用的总数会显示在使用迭代弹出窗口中。

    • 使用 下一步返回 按钮在使用迭代弹出窗口中 Control+Alt+PageDown/Control+Alt+PageUp 导航到下一个和上一个使用。

    • 要在 查找结果 窗口中查看并 分析匹配项列表,请单击 在“查找结果”中显示 ThemedIcon.SearchResults.Screen.(Gray).png ,按 Shift+Enter 或数字键盘上的 +

    • 要在当前文档中导航符号使用,请单击 ThemedIcon.ErrorStripeFindNext.Screen.(Gray).png 图标,该图标位于 标记栏的顶部。

  • 不执行任何操作 — “转到声明”只能在符号使用上调用以转到其声明。

当您在接口成员的使用上 调试模式中调用 转到声明 时,ReSharper 将带您到当前帧中使用的确切实现,而不是接口声明。

当成员在持有接口类型的局部变量、参数和字段上被调用时,它将导航到成员实现。

如果在 Visual Studio 的选项页面 调试 | 常规 上选择了 启用属性评估和其他隐式函数调用 ,则导航到实现也适用于持有接口类型的属性。

interface IMyInterface { public void Print(); } class One : IMyInterface { public void Print() => Console.WriteLine("One"); } class Two : IMyInterface { public void Print() => Console.WriteLine("Two"); } class Test { void Test1() => MyTest(new One()); void Test2() => MyTest(new Two()); void MyTest(IMyInterface input) { // 'Go to Declaration' on 'Print()' will navigate to // its implementation in 'One' or in 'Two' // depending on the debugger context. input.Print(); } }

此功能在以下语言和技术中 受支持

语言:C#

语言:VB.NET

语言:C++

语言:ASP.NET

语言:Razor

语言:XAML

语言:Resx

语言:构建脚本

语言:SQL

此功能在 C# 中可用

此功能在 Visual Basic 中可用

此功能在 C++ 中可用

此功能在 ASP.NET 中可用

此功能在 Razor 中可用

此功能在 XAML 中可用

此功能在资源文件中可用

此功能在构建脚本文件中可用

此功能在 SQL/NoSQL 文件和注入中不可用

此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。

最后修改日期: 2025年 9月 27日