如何:搜索对象、定义和引用(符号)

更新:2010 年 8 月

使用**“对象浏览器”“定位到”“查找符号”“转到定义”**,可以搜索解决方案中的对象、定义或引用(符号)。

通过在**“对象浏览器”**中键入搜索字符串,可以筛选在当前浏览范围的对象窗格中显示的符号的名称。 例如,键入字符串 MyObject 将返回“MyObject”、“MyObjectTest”和“CMyObject”。

使用**“定位到”**功能可以在源代码中搜索符号或文件。

若要执行更高级的搜索,可以使用**“查找和替换”窗口的“查找符号”选项卡。 结果将显示在“查找符号结果”**窗口中。 有关更多信息,请参见“查找和替换”窗口 ->“查找符号”“查找符号结果”窗口

提示

右击“对象浏览器”对象窗格中的符号,然后单击“查找所有引用”,查找结果也显示在“查找符号结果”窗口中。

您还可以按下面的方式搜索代码元素的原始定义:在编辑器中右击元素的实例,然后单击**“转到定义”**。

使用对象浏览器搜索符号

在**“对象浏览器”“搜索”框中键入搜索字符串时,只搜索当前浏览范围。 使用“浏览”**列表可选择浏览范围。 有关如何进行范围搜索的更多信息,请参见如何:在对象浏览器中修改浏览范围

在对象浏览器中使用搜索字符串来搜索符号

  1. 在**“对象浏览器”“浏览”**列表中,选择浏览范围。

  2. 在**“搜索”**框中,键入全部或部分要搜索的符号名,或者从下拉列表中选择一个符号名。

    提示

    搜索不区分大小写。

  3. 单击**“搜索”**。

    对象窗格仅显示浏览范围内包含搜索字符串的符号名。 每个匹配项中的该字符串都将突出显示。

清除结果

  • 在**“对象浏览器”中,单击工具栏上的“清除搜索”**按钮。

    对象窗格现在显示当前浏览范围内的所有对象。

使用“定位到”功能搜索符号

通过使用**“定位到”**功能,可在解决方案中查找并定位到特定位置,也可以浏览解决方案中的元素。 该功能可帮助您从查询中选出一组适当的匹配结果。

“定位到”对话框

使用“定位到”功能搜索符号或文件

  1. 在**“编辑”菜单上,单击“定位到”**。

  2. 在上部的框中,键入搜索字符串。

    请注意,在键入时,结果将显示在下部的框中,随着键入更多的内容,框中的结果将相应变化。 例如,如果键入 Click,则会显示所有包含“Click”的符号名;如果再键入一个空格和字母 E,则列表将进行筛选,只显示包含“Click”和“E”的符号(空格视为 and 关系)。

搜索结果可能包含解决方案中的符号定义和文件名,但不包含命名空间或局部变量。

一个搜索字符串可以包含多个搜索词,搜索词之间必须使用空格分隔。 如果搜索词包含大写字母,则对该词的搜索区分大小写;否则,搜索不区分大小写。 对于文件名的第一个字符,文件名始终不区分大小写。

通过使用 Camel 大小写格式和下划线字符,可以将符号分为多个关键字,这样可搜索包含在符号中的关键字。 例如,若要查找“AddOrderHeader”符号,可以搜索“add”、“order”、“header”、“order add”、“AOH”以及其他组合,如下表所示。

符号名

关联的关键字

匹配搜索字符串示例

AddOrderHeader

Add、Order、Header

“add”、“order”、“header”、“order add”、“AOH”、“a o”、“add ord”、“OrderH”

update_customer

update、customer

“update”、“customer”、“customer upd”、“update c”

**“定位到”**语法不支持如下的特殊逻辑或特殊字符:

  • 通配符匹配

  • 布尔逻辑运算符,包括 and、or、& 和 |

  • 正则表达式

双击某个结果可以在代码中查看其定义。

若要进行增强查询,请使用**“查找符号”**。

使用“查找符号”功能搜索符号

使用**“查找和替换”窗口的“查找符号”选项卡,可定位到项目代码中定义、引用或使用某个符号的行。 具体而言,“查找符号”**适用于以下情况:

  • 搜索符号的定义,或查找某个符号的多个定义。

  • 搜索对某个符号的引用,以及代码中用到该符号的地方。

  • 浏览所引用组件和外部组件中的对象层次结构,以便了解其功能。

使用**“查找符号”**不同于查找文本,区别如下:

  • 使用**“查找符号”**时,搜索范围仅限于符号。

  • 在**“查找符号结果”**窗口中,会指示符号的所有可用定义以及对该符号的引用。

  • 可以在没有源代码的外部组件中搜索。

在“查找和替换”窗口的“查找符号”选项卡上,使用搜索字符串来搜索符号

  1. 如果有任何要搜索的文件采用源代码管理的方式来存储,请将其签出。

  2. 将所有打开的文档都切换到**“源”**视图。

  3. 在**“编辑”菜单上,单击“查找和替换”,再单击“查找符号”**。

  4. 在**“查找范围”**列表中,选择以下搜索范围之一。

    • 如果选择**“所有组件”,搜索范围将限定于所有可用组件,包括当前解决方案、当前解决方案中被引用的组件、.NET Framework 类库,以及通过“添加其他组件”**添加的所有组件。

    • 如果选择**“.NET Framework”**,搜索范围将限定于 .NET Framework 类库。

    • 如果选择**“我的解决方案”**,搜索范围将限定于打开的解决方案中定义或引用的符号名。

    • 如果选择**“自定义组件集(对象浏览器)”,搜索范围将限定于当前已添加到“对象浏览器”“自定义组件集”**搜索范围中的组件。

    • 如果选择**“自定义组件集(查找符号)”,搜索范围将限定于当前已添加到“查找符号”“自定义组件集”**搜索范围中的组件。

    • 单击“浏览”(“...”)按钮,以显示“编辑自定义组件集”对话框,然后选择自定义搜索文件夹集。 有关更多信息,请参见如何:在对象浏览器中修改浏览范围

  5. 在**“查找选项”**下,设置所需选项,具体如下:

    • **“全字匹配”**选项:对结果进行筛选,只显示与搜索字符串完全匹配的项。 例如,搜索 MyObject 将返回“MyObject”,而不会返回“CMyObject”或“MyObjectC”。

    • **“前缀”**选项:对结果进行筛选,只显示以搜索字符串开头的项。 例如,搜索 MyObject 将返回“MyObject”和“MyObjectTest”,而不会返回“CMyObject”。

    • **“子字符串”**选项:返回所有包含搜索字符串的结果。 例如,搜索 MyObject 将返回“MyObject”、“MyObjectTest”和“CMyObject”。

    使用上述任一选项时,还可以选择**“大小写匹配”。 此选项可进一步筛选结果,只显示与搜索字符串的大小写相匹配的项。 例如,如果在选中“大小写匹配”**的条件下搜索 MyObject,将返回“MyObject”,而不会返回“myobject”或“MYOBJECT”。

    提示

    “查找和替换”设置在不同搜索之间保持有效。 有关更多信息,请参见“查找和替换”窗口 ->“查找符号”

  6. 在**“查找内容”**框中,输入要查找的字符串或表达式。

    提示

    “查找符号”搜索中,不能使用通配符和正则表达式。

  7. 单击**“全部查找”**开始搜索。

    结果显示在“查找符号结果”窗口中。 双击某个结果可以跳转到代码中的相应匹配项。

导航到定义

在编辑器中,如果需要搜索代码元素的原始定义,请右击该元素,然后单击**“转到定义”**。 可以针对成员、类型、变量、局部变量等元素进行搜索。

即使代码使用重载或类型推理,**“转到定义”**也会使用编译器信息查找和显示原始定义,只要其位置对 Visual Studio 可用。

搜索代码元素的定义

  • 在编辑器中,右击要查找其定义的代码元素,然后单击**“转到定义”**。

    最初在其中定义该元素的模块如果可用,将显示在编辑器的新选项卡上。 如果定义不可用,将显示错误消息。

请参见

任务

如何:在对象浏览器中定位

参考

“查找符号结果”窗口

“查找符号”命令

“代码定义”窗口

其他资源

如何:使用引用突出显示

修订记录

日期

修订记录

原因

2010 年 8 月

修改了“定位到”功能信息。

内容 Bug 修复