局部变量和参数位于栈上。在调用方法的时候,内存从栈的顶部开始分配,保存和方法关联的一些数据项。这块内存叫做方法的栈帧
■栈帧包含的内存保存如下内容。
●返回地址,也就是在方法退出的时候继续执行的位置。
●这些参数分配的内存,也就是方法的值参数,或者还可能是参数数组。
●各种和方法调用相关的其他管理数据项。
■在方法调用时,整个栈帧都会压入栈。
■在方法退出的时候,整个栈都会从栈上弹出。弹出栈帧有的时候也叫做栈展开。
class Program
{
static void MethodA(int par1,int par2) {
Console.WriteLine("Enter MethodA:{0},{1}",par1,par2);
MethodB(11,18);
Console.WriteLine("Exit MethodA");
}
static void MethodB(int par1,int par2) {
Console.WriteLine("Enter MethodB:{0},{1}",par1,par2);
Console.WriteLine("Exit MethodB");
}
static void Main(string[] args)
{
Console.WriteLine("Enter Main");
MethodA(15,30);
Console.WriteLine("Exit Main");
Console.ReadKey();
}
}


本文介绍了局部变量和参数如何存储于栈中,并通过具体示例详细解释了方法调用时栈帧的创建与销毁过程。包括返回地址、参数及管理数据等内容。
&spm=1001.2101.3001.5002&articleId=80420214&d=1&t=3&u=2f383be2c55449078a889df8c1b57b26)
1434

被折叠的 条评论
为什么被折叠?



