1

質問からインスピレーションを得た

そして、私がこの質問をする前に、私は読んだ:

問題の課題は

到達可能なgotoステートメントがあるが、対応するラベル付きステートメントが到達不能であるプログラムを作成する-Eric Lippert

そして1つの実行可能な答えは次のようなものです

    // the 3 lines are not important but declare variable for afterwards use
    var whateverException=new Exception("whatever exception");
    var whateverAction=default(Action);
    whateverAction=() => whateverAction();
    try {
        goto whateverLabel; // (1) the goto is reachable
    }
    finally {
        throw whateverException; // (3) because finally hijacks
    }

whateverLabel: // (2) but the label is not really reached
    whateverAction();

シングルスレッドプログラムでは、到達可能なgotoが到達不能なラベルを指している唯一のケースであると思いますか?そして、次のコードもその実行可能な答えと見なされますか?

here:
    int d=0, n=1/d;
    goto here;
4

1 に答える 1

5

finallyブロックされたgotoトリックは、実際には、到達不能なラベルをターゲットとする到達可能なgotoを取得する唯一の方法です。

于 2013-03-05T06:48:50.447 に答える