ネストされたループを終了する方法を調査した後、使用してみることにしましたgoto
。
private void example()
{
for (int i = 0; i < 100; i++)
{
for (int ii = 0; ii < 100; ii++)
{
for (int iii = 0; iii < 100; iii++)
{
goto exitMethod;
}
}
}
exitMethod:
}
しかし、何らかの理由でgoto
、メソッドの最後にラベルを付けると、Visual Studio 2012 (Ultimate) が文句を言います (そしてコンパイルされません)。
しかし、コードをこれに変更すると、
private void example()
{
for (int i = 0; i < 100; i++)
{
for (int ii = 0; ii < 100; ii++)
{
for (int iii = 0; iii < 100; iii++)
{
goto exitMethod;
}
}
}
exitMethod:
int someUnneededVariable; // Just an example, if I add ANY piece of code the error vanishes.
}
エラーは表示されません (そしてコンパイルされます)。私が知っているすべての MSDN リファレンスを検索しましたが、これについては何も見つかりませんでした。
return;
;を使用してこの問題を簡単に解決できることを知っています。それでも、このエラーの原因を突き止めたいと思います。