Call Hierarchy是Visual Studio 2010中的一个新的特性,它用来查看函数之间的调用层次关系。它跟原来的Find All References功能相似,但是,更加强调调用层次,而且能够比后者提供更多的信息。

调用方法:

我们首先创建一个示例程序(C#,Console Application):

 

Visual Studio 2010 中的 Call Hierarchyusing System;
Visual Studio 2010 中的 Call Hierarchy
using System.Collections.Generic;
Visual Studio 2010 中的 Call Hierarchy
using System.Linq;
Visual Studio 2010 中的 Call Hierarchy
using System.Text; 
Visual Studio 2010 中的 Call Hierarchy
Visual Studio 2010 中的 Call Hierarchy
namespace ConsoleApplication3

在fun2上右击,在上下文菜单中选择View Call Hierarchy:

Visual Studio 2010 中的 Call Hierarchy

然后,一个叫“Call Hierarchy”的工具窗口就出现在了VS底端,把fun2作为根节点显示。

打开“+”,Call Hierarchy会在后台对整个Solution里进行搜索,然后,把找到的节点添加到当前节点以下(例如fun1(),fun4()之类的)。于是,我们就看到所有调用fun2的函数(Calls To)和fun2所调用的函数(Calls From)。

Visual Studio 2010 中的 Call Hierarchy

点击具体的函数,可以看到函数所在的具体位置;双击右边的Call Sites行,即可将当前光标导航到对应位置。

同时,右击函数名,还可以把任意出现的函数添加为新的根节点,删除节点按钮可以移除根节点:

Visual Studio 2010 中的 Call Hierarchy

通过Call Hierarchy,我们可以更加清晰的去理解程序之间调用关系,帮助我们更多好的阅读程序。

Call Hierarchy在VS 2010 CTP里已经实现,大家已经可以先玩玩。用VB的朋友可能还要稍等上一阵子,期望在Beta1或者Beta2阶段,这个功能在VB中得以实现。

相关文章: