经过长时间学习调用Visual Studio继承树窗口,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。写程序离不开调试,调试离不开理清程序的执行流程。在以前的Visual Studio版本中,我们几乎都是调试的时候通过调用栈来查找函数间的调用关系,帮助调试的。调用栈虽然好用,但是只能在调试时使用,同时也只能串行,只有一条执行路径。另外,随着现代应用程序越来越复杂,调用栈已经无法满足我们分析程序逻辑的需要。所以在Visual Studio 2010中,微软为我们提供了新的程序逻辑分析工具:调用继承树(Call Hierarchy)窗口。
#t#体验调用Visual Studio继承树窗口给我们带来的便利,我们可以打开Visual Studio 2010 CTP虚拟机中自带的示例项目DinnerNow – Management。在解决方案浏览器中,我们双击PSWorkflowMonitor.cs这个文件,将其在代码编辑器中打开。然后找到其中的 LoadWorkflowInstance函数,在这个函数上右键单击,在弹出的上下文菜单中选择“View Call Hierarchy”:
这样,我们就可以打开LoadWorkflowInstance函数的调用Visual Studio继承树窗口:
在调用Visual Studio继承树窗口中,我们可以像“爬树”一样,在这棵调用继承树的各个节点和对应的代码之间任意跳转:
◆跳转到代码
在调用Visual Studio继承树窗口中,我们可以在函数上点击右键,选择弹出菜单中的“Go To Definition”,就可以直接跳转到相应的代码。
同时我们可以注意到调用继承窗口的右边是“Detail Pane”,其中显示了当前选中函数所有的调用位置,我们只要双击其中的调用记录,就可以跳转到相应的函数调用位置。
◆创建或者删除调用继承树
当程序比较复杂的时候,我们的调用继承树也会“枝繁叶茂”,这样不利于我们的分析。在这种情况下,我们就可以把一个根节点中我们感兴趣的子节点设置为新的根节点,这样可以简化调用继承的深度,更加利于我们的分析。
◆改变调用继承搜索的范围
默认情况下,调用继承会搜索整个解决方案中的调用情况,如果我们的解决方案比较复杂,这就会使得调用继承树非常复杂,引入很多意义不大的调用关系。为了简化调用继承树,我们可以改变调用继承的搜索范围,将其限制在解决方案,当前项目或者当前文档。