递归函数的奇怪行为

时间:2017-11-20 11:06:38

标签: c# recursion flow

我有这段代码:

    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分支中有一个递归调用,我在其中设置一个参数counter = counter + 1.

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

2 个答案:

答案 0 :(得分:7)

attempts++之后增加attempts ++attempts在递归之前完成

答案 1 :(得分:0)

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

UPD:哎呀,花了太长时间。