是否可以从另一个方法中断/返回方法执行?

ava*_*e70 5 c# methods return execution break

我有这样的事情:

void MethodToBreak()
{
    // do something

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

    // do something
}

void MethodThatBreaks()
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

所以,我想知道:是否有可能打破执行:MethodThatBreaks()?然后,我会:if(something) MethodThatBreaks();如果内部条件if为真,那么该行之后就不会执行任何操作.

注意:else在这种情况下我知道这是可能的,但我不希望这样.

Dav*_*wns 4

如果你要扰乱一个方法的执行,那么维护起来将是一场噩梦。试图弄清楚为什么你的控制流在六个月后到处都是,或者对于另一个开发人员来说,会引发动脉瘤。

尽管我个人会使用else. 您有什么不想使用的特殊原因吗else?如果剩余的代码太长,则可能表明您应该重构。

  • 短路是一种正常的做法,这就是他目前正在做的事情……做好工作,然后尽快离开。这不是每个人都喜欢的,但它是一种完全有效的方法/风格:) (2认同)