什么是执行框架?

Gur*_*epS 5 c# stack callstack

在C#中,什么是执行帧(也与此有关,我听说过激活帧).IIRC它是一个方法参数去的槽,但不记得所有的细节.

谢谢

Han*_*ant 5

"执行框架"是在解释语言中使用的术语,特别是Python.这是与C#完全不同的执行模型.最接近的等价物是C#方法中的范围块,一大块代码用括号括起来.虽然Python执行框架也可以扩展到函数体,但现在它等同于C#中的堆栈框架.这是激活框架的另一个术语.

C#编译器识别C#中作用域块的本地声明.运行时不会,它只识别在整个方法的生命周期中处于活动状态的堆栈帧.通过简单地将所有范围块中的所有局部变量的总和声明为激活帧,编译器可以轻微地区分这种差异.这是Python解释器无法承受的奢侈品.


raz*_*ebe 3

我相信您指的是堆栈框架 - 在这种情况下,答案不是特定于 C# 或任何特定语言,而是特定于您的程序正在执行的平台。来自维基百科有关调用堆栈文章

调用堆栈由堆栈帧(有时称为激活记录)组成。这些是包含子例程状态信息的机器相关数据结构。每个堆栈帧对应于对尚未以返回终止的子例程的调用。

另请参阅上一个问题的答案,以获取对堆栈(包括堆栈帧)的精彩描述。