从调用方法返回
本文关键字:返回 方法 调用 | 更新日期: 2023-09-27 18:26:48
我有方法
public void x()
{
y();
z();
}
public void y()
{
if(some condition) return;
some code...
}
public void z()
{
somecode...
}
我知道,如果满足somecondition
条件,method y()
中的return语句将在不执行该方法中任何其他内容的情况下返回,并且将返回到method x()
并执行method z()
。但是有没有办法在不执行method z()
的情况下从method x()
返回?
我无法更改任何约束或编辑method y
让y()
返回某种代码,让x()
知道是否调用z()
。
public void x()
{
if (y())
{
z();
}
}
// Return true if processing should continue.
//
public bool y()
{
if(some condition) return false;
some code...
return true;
}
public void z()
{
somecode...
}
y()
返回一个bool
值。
public void x()
{
var isValidY = y();
if (isValidY)
z();
}
public bool y()
{
if(some condition) return false;
// some code...
return true;
}
public void z()
{
// some code...
}
如果你不能更改y()
,那么你必须接受评论中留下的建议Enigmativity,并重复some condition
:所代表的逻辑
public void x()
{
y();
if (some condition) return;
z();
}
public bool y()
{
if (some condition) return;
// some code...
}
如果不能更改方法签名,请创建一个全局标志变量:
private bool shouldContinue = true;
public void x()
{
y();
if(shouldContinue)
z();
}
public void y()
{
if(some condition)
{
shouldContinue = false;
return;
}
some code...
}
public void z()
{
somecode...
}