Visual Studio:如何在IntelliSense中显示重载?

328

代码编写完成后,我所知道的查看方法重载的唯一方式是实际编辑该方法,删除括号()并重新打开它们。

是否有快捷键可以激活此功能,而无需编辑文件?

请参考下面的ShowDialog Overload屏幕截图:

ShowDialog1 Overloads


15
好久不见的上下箭头去哪里了? - Zapnologica
6
上下箭头仍然存在,但需要激活并打开 IntelliSense 框才能使用这些箭头来滚动重载选项。这个问题是关于如何打开 IntelliSense 框的。 - user153923
3
如何使其默认打开,控制空格与控制Shift空格的区别。 - Zapnologica
9
我使用的是“Control + Shift + Space”组合键,就像旧的“Control + Alt + Delete”组合键一样。 - user153923
在VS2012中,当我在函数名后键入一个打开的括号时,它通常会默认打开,但自从我安装了ReSharper之后似乎不再这样了。相反,它会给出一个下拉菜单,列出可能填充到第一个参数中的变量/函数。非常令人烦恼。 - Nyerguds
2
对于那些想知道在输入重载时漂亮的自动上下箭头去哪了的人们:我不确定这个选项在VS设置中存在多长时间,但在VS Community 2019 v16.9.2中,在工具>选项>文本编辑器>C#>智能感知中有一个名为“自动显示参数列表完成列表(实验性)”的复选框。如果取消选中该复选框,则上/下箭头滚动重载的默认行为将返回。 - bsigma1
11个回答

513

将光标放在括号内,使用键盘快捷键Ctrl-Shift-Space。如果您更改了默认设置,则相应的快捷键为Edit.ParameterInfo

示例:

描述性截图,由jp2code提供


49
至少在VS 2008中,似乎您的光标必须在括号内才能使用这个快捷键。另外,感谢您的发布,我之前不知道这个存在! - kiswa
3
如果有一种默认的方法让这件事发生就好了。 - Mike Lowery
3
在VS2017中,"cursed"(可能是代码或变量名称)也必须在括号内。 - Mohammed Noureldin
在 vscode 中,这也可以工作,并且您可以使用 Alt + UpAlt + Down 在它们之间导航。 - Juan De la Cruz

67

3
哇,你的现在看起来比我的更性感,因为你使用了那些花哨的键盘标签!我不能让这种情况发生! - aardvarkk
+1,并请Neil告诉我如何在这里实现。 - user153923
对我来说,在VS2017中似乎是这样的:Ctrl+Shift+Space,Space。 - andrew pate

66

仅在Visual Studio 2010上测试过。

将光标放置在()内,按下Ctrl+K,然后按P键。

现在通过按 ↑  / ↓  箭头键进行导航。


也许我做错了什么,但我无法在VS2008或VS2010中使其工作。 - user153923
1
这是一个VS2010的快捷方式(不确定2008) - 但有可能您已更改它,或者安装的工具劫持了该快捷方式。 - Alex In Paris
这正是我一直在寻找的。类似于IntelliJIdea/Android Studio中的Ctrl+Q的东西。 - DaMachk

25

这个的默认键绑定是 Ctrl+Shift+Space

对应的 Visual Studio 命令是 Edit.ParameterInfo

如果标准键绑定对您无效(在某些配置文件中可能存在),则可以通过键盘选项页面更改它:

  • 工具 -> 选项
  • 键盘
  • 输入 Edit.ParameterInfo
  • 更改快捷键
  • 点击分配

在Visual Studio 2015中,如果这个方法对你不起作用,请确保尝试这个链接:https://dev59.com/Al0a5IYBdhLWcg3wJl6o#31087682。我不得不这样做才能让它工作。 - jakejgordon

15

有时候以上的方法都不奏效。按键绑定是正确的,但工具提示在任何情况下都不显示,无论是作为自动完成帮助还是按需求出现。

要解决这个问题,只需前往工具\文本编辑器\C#(或所有语言),并勾选“参数信息”即可。现在应该可以工作了。

输入图像描述


8

很好的问题,我也遇到了同样的问题。事实证明确实有一个键盘快捷键可以打开这个列表:Ctrl+Shift+Space(这是基本IntelliSense快捷键Ctrl+Space的变体)。


6
  • 默认情况下,命令Edit.ParameterInfo(快捷键是Ctrl+Shift+Space)将在光标位于方法调用的参数括号内时显示重载提示。

  • 命令Edit.QuickInfo(快捷键是Ctrl+KCtrl+I)将显示当你鼠标悬停在光标位置时看到的工具提示。


4

我知道这是一篇旧文章,但对于像我这样的新手仍然有用。当你悬停在一个方法上时,你会得到一个不可点击的信息框,而如果你在方法括号中只写一个逗号,IntelliSense 就会提供一个可点击箭头的信息框。


那不是同一件事。那是智能感知可以放入哪些值的内容,而不是重载窗口。要打开重载窗口,只需按Ctrl+Space即可。 - Mastro

3

有时候以上的建议会失效,如果我重新启动Visual Studio,它们就会重新生效。


3
你的意思是改变过载。只需要按 Shift + ↑ / ↓。

1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接