Kae*_*aeL 4 c# recursion .net-4.0 optional-parameters
我遇到的问题optional parameters上recursive functions
这是一个示例代码:
private static void RecursiveFunction(int x, int optional = 0)
{
if (x < 5)
RecursiveFunction(x + 1, optional++);
}
Run Code Online (Sandbox Code Playgroud)
调用函数时:
RecursiveFunction(0);
Run Code Online (Sandbox Code Playgroud)
我得到了以下结果(只是string.Format("{0} - {1}", x, optional)在即时窗口中调用此代码):
"0 - 0"
"1 - 0"
"2 - 0"
"3 - 0"
"4 - 0"
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?谢谢!
改变自:
RecursiveFunction(x + 1, optional++);
// ^^
Run Code Online (Sandbox Code Playgroud)
至:
RecursiveFunction(x + 1, ++optional);
// ^^
Run Code Online (Sandbox Code Playgroud)
第一个做动作然后递增optional.
第二个在增加后执行操作optional.
来自MSDN:
++ var
var ++
Run Code Online (Sandbox Code Playgroud)
第一种形式是前缀增量操作.操作的结果是操作数增加后的值.
第二种形式是后缀增量操作.操作的结果是操作数增加之前的值.