我有这样的事情:
void MethodToBreak()
{
// do something
if(something)
{
MethodThatBreaks();
return;
}
// do something
}
void MethodThatBreaks()
{
// do something
}
所以,我想知道:是否有可能打破执行:MethodThatBreaks()
?然后,我会:if(something) MethodThatBreaks();
并且如果if
内的条件为真,那么该行之后的任何内容都不会被执行。
注意:我知道在这种情况下可以else
,但我不希望这样。
答案 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
}