using System;
namespace Test{
public class Program
{
static void Foo(int depth, int max)
{
Console.WriteLine("Calling Foo(depth={0}, max={1})", depth, max);
if (depth < max) Foo(depth + 1, max);
Console.WriteLine("Returning from Foo(depth={0}, max={1})", depth, max);
}
static void RecurseToDepth(int max)
{
Foo(0, max);
}
static void Main(string[] args)
{
RecurseToDepth(5);
}
}}
//输出结果
Calling Foo(depth=0, max=5)
Calling Foo(depth=1, max=5)
Calling Foo(depth=2, max=5)
Calling Foo(depth=3, max=5)
Calling Foo(depth=4, max=5)
Calling Foo(depth=5, max=5)
Returning from Foo(depth=5, max=5)
Returning from Foo(depth=4, max=5)
Returning from Foo(depth=3, max=5)
Returning from Foo(depth=2, max=5)
Returning from Foo(depth=1, max=5)
Returning from Foo(depth=0, max=5)
转载于:https://my.oschina.net/waston/blog/604299