Visual Studio 中的 IntelliSense

IntelliSense 是一种代码补全工具,包含帮助您了解使用的代码、追踪输入参数,以及通过几个按键即可添加属性和方法调用等功能。

这些功能包括:

IntelliSense 的许多方面都是特定于语言的。 有关不同语言的 IntelliSense 的详细信息,请参阅 “相关内容 ”部分中列出的文章。

列出成员

输入一个触发字符后(例如,在托管代码中输入< c0 />,或在C++中输入),将显示类型(或命名空间)的有效成员列表。 如果继续键入字符,则会筛选列表以仅包含以这些字符开头的成员,或者名称中 任意 单词的开头以这些字符开头。 IntelliSense 还支持驼峰命名匹配,因此只需在成员名称中键入每个驼峰命名单词的首字母即可查看匹配项。

选择项目后,可以通过按 Tab 或键入空格将其插入代码中。 如果选择某个项并键入句点,则该项会显示后跟句点,这将显示另一个成员列表。 当你选择某个项,但在插入项之前,你将获得该项的 快速信息

在成员列表中,左侧的图标表示成员类型,例如命名空间、类、函数或变量。 列表可能很长,因此可以按 PgUpPgDn 在列表中向上或向下移动。

IntelliSense 列表成员功能的屏幕截图。

IntelliSense 列表成员功能的屏幕截图。

可以通过键入 Ctrl+J选择“编辑>IntelliSense>列表成员”或选择编辑器工具栏上的 “列表成员 ”按钮来手动调用列表成员功能。 在空白行或可识别范围外部调用该列表时,列表将在全局命名空间中显示符号。

若要默认关闭列表成员,除非专门调用,否则它不会显示,请转到 “工具>选项>文本编辑器>所有语言” ,然后取消选择 “自动列表”成员。 如果您想仅关闭特定语言的列表成员,请转到该语言的常规设置。

还可以更改为建议模式,在该模式下,仅将键入的文本插入代码中。 例如,如果输入的标识符不在列表中,然后按 Tab,则条目将替换完成模式下的键入标识符。 若要在完成模式与建议模式之间切换,请按 Ctrl+Alt+空格,或选择 “编辑>IntelliSense>切换完成模式”。

还可以更改为建议模式,在该模式下,仅将键入的文本插入代码中。 例如,如果输入的标识符不在列表中,然后按 Tab,则输入将在完成模式下替换键入的标识符。 若要在完成模式与建议模式之间切换,请按 Ctrl+Alt+空格,或者选择 编辑>IntelliSense>在自动和仅限 Tab 的 IntelliSense 完成之间切换

参数信息

参数信息 提供有关方法、属性泛型类型参数(在 C# 中)或模板(C++)所需的参数的数量、名称和类型的信息。

粗体中的参数指示键入函数时所需的下一个参数。 对于重载函数,可以使用 向上 键和 向下 键查看函数重载的替代参数信息。

显示 IntelliSense 参数信息功能的屏幕截图。

IntelliSense 参数信息功能的屏幕截图。

使用 XML 文档注释批注函数和参数时,注释将显示为参数信息。 有关详细信息,请参阅 提供 XML 代码注释

可以通过选择 “编辑>IntelliSense>参数信息”、“ 按 Ctrl+Shift+空格”或选择编辑器工具栏上的 “参数信息 ”按钮来手动调用参数信息。

快速信息

快速信息 显示代码中任何标识符的完整声明。

显示 IntelliSense 快速信息功能的屏幕截图。

IntelliSense 快速信息功能的屏幕截图。

从“列表成员”框中选择成员时,还会显示“快速信息”。

IntelliSense 快速信息和参数信息功能的屏幕截图。

IntelliSense 快速信息和参数信息功能的屏幕截图。

可以通过选择“编辑>IntelliSense>快速信息”、“按 Ctrl+”、“Ctrl+I”或选择编辑器工具栏上的“快速信息”按钮来手动调用快速信息

如果函数重载,IntelliSense 可能不会显示所有形式的重载的信息。

可以通过导航到 “工具”>“选项”>“文本编辑器”>“C/C++”>“高级”,并将 “自动快速信息” 设置为“关闭”来禁用 C++ 代码的快速信息 false

完成 Word 操作

Complete Word 会在输入足够的字符后完成变量、命令或函数名称的其余部分,以消除歧义。 可以通过选择“编辑>IntelliSense>自动完成词”、按“Ctrl+空格键”,或选择编辑器工具栏上的“自动完成词”按钮来调用“自动完成词”功能。

IntelliSense 选项

默认情况下,IntelliSense 选项处于打开状态。 若要将其关闭,请转到 “工具>选项>文本编辑器>所有语言 ”,然后取消选择 “参数信息 ”或 “自动列表”成员 (如果不希望“列表成员”功能)。

小窍门

如果要更改 Visual Studio 中用户界面元素的外观,请转到 “工具>选项>环境>字体和颜色”。 有关这些设置以及如何与其交互的详细信息,请参阅 “字体和颜色”、“环境”、“选项”对话框

IntelliSense 图标

IntelliSense 中的图标可以通过图标修饰符传达其他含义。 这些是叠加在对象图标顶部的星星、心形和锁,分别表示受到保护、内部使用或私人用途。

图标 Accessibility Description
公共图标修饰符 公共类 访问不受限制。
保护图标修改器 受保护的类 访问权限仅限于包含类本身或从包含类派生的类型。
受保护的内部图标修饰符 受保护的内部类 访问权限仅限于当前程序集或包含类派生的类型。
内部图标修饰符 内部类 访问权限仅限于当前程序集。
专用图标修饰符 私有类 访问权限仅限于当前程序集内的包含类或从该包含类派生的类型。 (自 C# 7.2 起可用)。

IntelliSense 疑难解答

在某些情况下,IntelliSense 选项可能无法正常工作。

  • 游标低于代码错误:如果游标上方的代码中存在不完整的函数或其他错误,则可能无法使用 IntelliSense,因为 IntelliSense 可能无法分析代码元素。 可以通过将适用的代码注释掉来解决此问题。

  • 游标位于代码注释中:如果游标位于源文件中的注释中,则无法使用 IntelliSense。

  • 游标位于字符串文本中:如果游标位于字符串文本周围的引号中,则无法使用 IntelliSense,如以下示例所示:

    MessageBox( hWnd, "String literal|")
    
  • 自动选项处于关闭状态:默认情况下,IntelliSense 会自动工作,但你可以禁用它。 即使禁用自动语句补全,您仍然可以使用 IntelliSense 功能。