次のコードを検討してください。
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# コンパイラのバグですか?