嵌入提示
内嵌提示是 可配置的 编辑器装饰,可提高代码的可读性。
按键提示模式
内嵌提示可能很有帮助,但另一方面,它们占用编辑器空间,在某些情况下可能显得多余。 要按需查看内嵌提示,您可以使用 按键提示 模式。 它允许您将提示隐藏,仅在需要时查看它们。
按下键时显示内嵌提示
确保应用程序焦点在编辑器中。
按下 Ctrl 两次并在第二次按下后保持。 只要您按住,内嵌提示将会显示。
如果您希望在释放 Ctrl 键后继续显示内嵌提示,请单击编辑器右上角的相应图标:
要停止显示内嵌提示,请再次单击 按下显示提示 图标。
If you want inlay hints to be always shown or hidden in all editor tabs, use the 默认可见性 selector on the page of ReSharper 选项 Alt+R, O . 无论您选择默认可见性如何,您都可以在 下的相应设置页面上为特定类型的提示覆盖此设置。
如果 Ctrl 键的按住或双击操作已绑定到您的操作系统或其他应用程序中的其他操作,ReSharper 将覆盖这些映射,即使您不使用按键提示。 To avoid that, clear the 为“一键提示”保留按两次 Ctrl 键并按住 checkbox on the page of ReSharper 选项 Alt+R, O .
形参名称提示
作为在方法调用中编写 命名参数 的替代方案,您可以利用 ReSharper 的 参数名称提示——编辑器装饰会在方法调用中将参数名称显示在相应参数旁边。
请考虑以下方法调用:
当您阅读此代码时,您必须暂停并研究方法签名以理解这里发生了什么(您可以通过 参数信息工具提示或 导航到方法声明来完成此操作)。 使用参数名称提示,相同的调用变得更加清晰:

参数名称提示的理念是为意图可能不明确的参数显示参数名称,同时避免在参数目的显而易见的情况下使编辑器充满提示,当然如果调用中有命名参数也是如此。 为实现这一点,ReSharper 应用了许多 可配置的启发式规则。
类型名称提示
类型名称提示帮助您理解变量和表达式在不同上下文中的类型。 例如:
匿名类型,

lambda 表达式的参数,

调用链中方法的返回类型,

以及许多其他情况。
如果需要,您可以为每种特定情况 配置 类型名称提示。
类型转换提示
类型转换提示显示代码中的隐式类型转换。
在下面的示例中,从 Vector3D 转换为 Vector2D 会悄悄丢失数据(Z 值),提示帮助我们看到这种情况发生的位置。

如果您发现特定转换的类型转换提示不是很有帮助,您可以禁用涉及这些特定类型的所有转换提示。 为此,请将光标放在赋值运算符旁边,按下 Alt+Enter 并选择 。 The change will be saved, and you will be able to review or revert it later on the page of ReSharper 选项 Alt+R, O .
代码分析提示
您可以使用内嵌提示显示函数中缺失的返回值和 switch 语句中缺失的 break。 这让您可以立即了解具体缺失的内容:

您可以使用内嵌提示查看资源变量被释放的位置:

如果您使用 [MustDisposeResourceAttribute]从 JetBrains.Annotations 强制资源释放在调用代码中,ReSharper 帮助您直观地识别返回可释放资源的构造函数和工厂方法:

To configure visibility of these hints, use the corresponding selectors on the page of ReSharper 选项 Alt+R, O .
C# 拦截器的内嵌提示
内嵌提示将帮助您发现 拦截的调用 ,并提供额外的功能,通过 Alt+Enter 或 Ctrl +单击提示图标导航到拦截器方法:

拦截器方法上的 [InterceptsLocation] 注解有一个提示,允许您导航到被拦截的调用:

To configure visibility of these hints, use the corresponding selectors on the page of ReSharper 选项 Alt+R, O .
未命名结构的内嵌提示
当元组组件名称无法从组件表达式中明显看出时,您可以看到元组组件名称的内嵌提示:

内嵌提示可以通过显示解构模式组件的声明名称大大提高其可读性:

当方法返回的变量多于所需时,某些变量会被 _ 丢弃,内嵌提示可以帮助您查看被丢弃的内容。 默认情况下,丢弃的提示与 push-to-hint一起工作:

To configure visibility of these hints, use the corresponding selectors on the page of ReSharper 选项 Alt+R, O .
'#pragma warning' 提示
#pragma warning 指令允许您通过其 ID 禁用和恢复特定警告。 记住每个 ID 的含义很困难,因此 ReSharper 可以添加带有警告描述的内嵌提示。 请注意,这种提示仅适用于 ID 以 CS 开头的编译器警告。

To configure visibility of these hints, use the corresponding selectors on the page of ReSharper 选项 Alt+R, O .
尾随局部函数提示
在代码块末尾放置局部函数是一种常见做法,但在阅读此类代码块时,您通常需要滚动查看局部函数定义以确保其后没有可执行代码。
为提高此类情况的可读性,ReSharper 提供内联提示,既可以可视化隐式控制流标记(如 return; 和 continue ),也可以在代码块中没有更多可执行代码时仅显示 //局部函数。

To configure visibility of these hints, use the corresponding selectors on the page of ReSharper 选项 Alt+R, O .
闭括号提示
当您位于大型代码块的末尾时,通常不清楚闭合大括号表示什么:它可能表示嵌套类型、方法或复杂语句的结束。 内嵌提示可以通过显示每个闭合大括号具体表示的内容来快速澄清代码结构:

为减少视觉干扰,这些提示仅在块长度超过 10 行且您的插入符号设置为闭合大括号时才会出现。
To enable or disable these hints, use the 使用内嵌提示显示匹配块的头部… checkbox on the page of ReSharper 选项 Alt+R, O .
配置内嵌提示
You can toggle and configure inlay hints on the corresponding settings pages under the page of ReSharper 选项 Alt+R, O .
如果您不使用内嵌提示,可以通过清除 ReSharper 选项 的 设置页面上的 启用内嵌提示 复选框来禁用它们。 ReSharper 将停止计算提示,从而节省一些资源。
但是,如果您只想查看某些特定类型的提示,可以在该页面上将 默认可见性 选择器设置为 从不显示 ,然后使用可见性选择器覆盖所需类型的提示。
对于 参数名称提示 ,您还可以在匹配特定模式的方法中隐藏提示。 To do so, add these patterns at the bottom of the page of ReSharper 选项 Alt+R, O .
以下是一些模式示例:
System.Math.*匹配所有 FQN 以System.Math开头的方法。System.Math.*(*, *)匹配System.Math命名空间中具有两个参数的所有方法。(*info)匹配所有参数名称以info结尾的单参数方法。(key, value)匹配所有具有参数key和value的方法。Put(key, value)匹配所有具有参数key和value的Put方法。
当您的光标位于具有内嵌提示的代码项时,您可以按下 Alt+Enter ,选择 配置内嵌名称提示 ,或者右键单击参数提示,然后选择以下命令之一:
隐藏方法的所有调用的参数提示,或适用于当前项的类型名称提示(如果您想显示已禁用的提示,可以在选项页面中找到相应的项或异常模式并将其移除),
更改此类提示的可见性,
完全禁用内嵌提示(您可以稍后在选项页面中启用它们),
或打开选项页面进行详细配置。

如果您右键单击 参数名称、 类型名称 或 类型名称 提示,您还可以导航到相应类型或参数声明的声明:

您还可以使用 Control+Alt+Shift+5 快捷键或从 状态指示器 的上下文菜单中切换当前解决方案中的参数名称提示:

You can configure the color and font size of inlay hints — the font size can be set on the page of ReSharper 选项 Alt+R, O , the font color — in Visual Studio options: go to and find the ReSharper 内嵌提示 in the list of display items.
在不同语言中的适用性
此功能在以下语言和技术中 受支持:
此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。