具有递归函数的奇怪行为
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, ++attempts
在 before 递归.
尝试将 attempts++
更改为 ++attempts
。
UPD:糟糕,时间太长了。
我有这个代码:
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, ++attempts
在 before 递归.
尝试将 attempts++
更改为 ++attempts
。
UPD:糟糕,时间太长了。