p; if (num == cout)
{
Console.Write(v2);
Console.WriteLine();
return v1 + v2;
}
else
{
//取得当前方法
StackFrame frame = new StackFrame(0);
//递归调用
return (long)(frame.GetMethod().Invoke(num, new object { v2, (v1 + v2), num, cout }));
}
}, 30);
Console.Read();
}
}
我们的代码成功运行了,成功的求出在第30个位置的数值是:514229
其时,.NET里还有一个东东可以方便的得到当前调用方法的引用,这东东就是MethodBase,其有一个静态方法GetCurrentMethod 可直接获取当前执行的方法引用,所以我们可以将上面的StackFrame处的两句代码改为如下:
//递归调用
return (long)(MethodBase.GetCurrentM