这是我的代码
using System;
public class Program
{
public static void Method(int flowerInVase)
{
if (flowerInVase > 0)
{
Method(flowerInVase - 1);
Console.WriteLine(flowerInVase);
}
}
public static void Main()
{
Method(3);
}
}
我对Console.WriteLine(flowerInVase);
方法调用自身感兴趣,直到它被条件终止。只有在那之后,当堆栈已满时,它才会从上面弹出每个方法,并且控制台会从最小的 1、2、3 开始写入数字。
为什么console.writeline
只有在堆栈弹出时才有效,为什么它没有在方法到达终止的方式上写数字,比如 3,2,1?编译器仅在完成递归时才使用 writeline。