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

时间:2010-09-16 09:19:09

标签: c# methods return execution break

我有这样的事情:

void MethodToBreak()
{
    // do something

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

    // do something
}

void MethodThatBreaks()
{
    // do something
}

所以,我想知道:是否有可能打破执行:MethodThatBreaks()?然后,我会:if(something) MethodThatBreaks();并且如果if内的条件为真,那么该行之后的任何内容都不会被执行。

注意:我知道在这种情况下可以else,但我不希望这样。

3 个答案:

答案 0 :(得分:4)

如果你要从另一个方法中执行一个方法,那么维持这将是一场噩梦。试图找出为什么你的控制流程在六个月之后,或者另一个开发人员,这将是动脉瘤引起的。

你在那里做的事情没有错,虽然我亲自使用else。是否有一个特殊原因导致您不想使用else?如果剩下的代码太长,可能并且表明你应该重构。

答案 1 :(得分:0)

MethodThatBreaks中抛出异常是一种可能性。所以在MethodToBreak的客户端中你放了try catch块。

答案 2 :(得分:-2)

这可以通过以下方式完成: 声明全局变量

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

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

        } else{
        return;
        }
    }

    // do something
}

void MethodThatBreaks()
{
     a="somevalue";
    // do something
}