目录:
定义-调用堆栈是什么意思?
在C#中,调用堆栈是从程序开始到当前语句执行期间在运行时调用的方法的名称列表。
调用堆栈主要用于跟踪每个活动子例程在完成执行后应返回控制的点。 当可以在多个上下文中调用要跟踪的方法时,调用堆栈可作为调试应用程序的工具。 与向所有调用给定方法的方法添加跟踪代码相比,这是更好的选择。 每当在用户代码中的任何地方引发异常时,公共语言运行时(CLR)都会展开调用堆栈并搜索catch块以确定特定的异常类型。 如果没有适当的处理程序,CLR将终止该应用程序。 因此,调用堆栈用于告诉执行指针下一步要去哪里。
Techopedia解释了调用堆栈
调用堆栈组织为“堆栈”,即内存中的一种数据结构,用于以先进先出的方式存储项目,以便子例程的调用者在完成后将返回地址压入堆栈和被调用的子例程中,将返回地址弹出调用栈,以将控制权转移到该地址。
在C#中,任何应用程序均以“ main”方法开头,该方法又调用其他方法。 每次调用方法时,该方法都会添加到堆栈的顶部,并在返回给调用者时从堆栈中删除。 同样,在块中声明的变量的范围是从将变量的值压入堆栈(作为调用堆栈的一部分)开始,直到变量和调用堆栈从堆栈中弹出时执行离开该块为止。 因此,堆栈维护局部变量(值类型)和调用堆栈(堆栈帧),堆栈的大小指示程序的复杂性。
