假设我有以下代码:
void Main()
{
int a = 5;
f1(ref a);
}
public void f1(ref int a)
{
if(a > 7) return;
a++;
f1(ref a);
Console.WriteLine(a);
}
输出为:
8 8 8
i.e. 当堆栈展开时,引用参数的值将得到维护。
这是不是意味着将 ref关键字
添加到 int参数
会导致它被装箱?在递归调用过程中实际的堆栈是怎样的?