考虑这段代码:
private static int i = 0;
static void Main(string[] args)
{
DoSomething();
Console.ReadLine();
}
public static void DoSomething()
{
Console.WriteLine(i);
++i;
DoSomething();
}
每次我运行它时,我都会得到StackOverflowException
不同的i
变量值。例如16023、16200、16071。
这背后的原因是什么?它是 C# 编译器中的错误吗?