我对以下代码如何从第一次调用它的那一刻起不只是无限循环感到困惑。
`public void Move(int discs, Stack<int> from, Stack<int> to, Stack<int> auxiliary)
{
if(discs > 0)
{
Move(discs - 1, from, auxiliary, to);
to.Push(from.Pop());
MovesCount++;
MoveCompleted?.Invoke(this, EventArgs.Empty);
Move(discs - 1, auxiliary, to, from);
}
}`
代码将如何通过第一个 Move()?