具有递归函数的奇怪行为

Weird behavior with recursive function

我有这个代码:

    public void myFunction(String label, String type, string command, int attempts = 0)
    {
        try
        {
            Utility.Logger("myFunction attempt " + attempts.ToSafeString() + " label " + label + " type " + type, command);
            ...stuff...
        }
        catch (Exception e)
        {
            if (attempts < 10)
                return myFunction(label, type, command, attempts++);
            else
                return null;
        }
    }

如您所见,我在 catch 分支中进行了递归调用,我在其中设置了一个参数 a counter = counter + 1。

奇怪的是我的日志中总是尝试= 0。为什么?我错过了什么?

attempts++ 递增 attempts afterwards, ++attemptsbefore 递归.

尝试将 attempts++ 更改为 ++attempts

UPD:糟糕,时间太长了。