5

私はこのようなものを持っています:

void MethodToBreak()
{
    // do something

    if(something)
    {
        MethodThatBreaks();
        return;
    }

    // do something
}

void MethodThatBreaks()
{
    // do something
}

だから、私は疑問に思っていました:実行を中断することは可能MethodThatBreaks()ですか?次に、次のようになります。if(something) MethodThatBreaks();内部の条件ifがtrueの場合、その行の後には何も実行されません。

注:elseこの場合は可能であることはわかっていますが、それは望ましくありません。

4

3 に答える 3

4

あるメソッドの実行を別のメソッドから混乱させた場合、維持するのは悪夢です。制御フローが6か月後に至る所にある理由、または別の開発者にとっては、動脈瘤を誘発する理由を理解しようとすることです。

個人的にはを使用しますが、あなたがすでにそこで行っていることに何の問題もありませんelse。使いたくない特別な理由はありますelseか?残りのコードが長すぎる場合は、おそらくリファクタリングする必要があります。

于 2010-09-16T09:25:45.287 に答える
0

例外をスローすることMethodThatBreaksは1つの可能性です。だからあなたのクライアントにMethodToBreakあなたはcatchブロックを試してみてください。

于 2010-09-16T09:25:46.963 に答える
-2

これは次の方法で実行できます。グローバル変数を宣言する

 a=null;
void MethodToBreak()
{
    // do something

    if(something)
    {
        MethodThatBreaks();
        if(a==null){

        } else{
        return;
        }
    }

    // do something
}

void MethodThatBreaks()
{
     a="somevalue";
    // do something
}
于 2014-01-09T18:11:20.233 に答える