我在StackOverflow上找到了一个关于哪些语言支持尾递归优化的问题。这里是链接。为什么C#不会在可能的情况下优化尾递归?
举个具体例子,为什么这个方法不能被优化成循环(在Visual Studio 2008 32位版本中,如果有影响的话):
private static void Foo(int i)
{
if (i == 1000000)
return;
if (i % 100 == 0)
Console.WriteLine(i);
Foo(i+1);
}