全部——我正在重构一些旧代码,并且正在寻找减少(或者如果不完全消除它)使用 GoTo 语句的方法。我有一段代码如下:
public void GetData()
{
TryAgain:
Foo foo = bar.GetData();
if(foo == null)
{
bar.addItem("Test");
goto TryAgain;
}
//Use the bar object
}
将其替换为以下内容:
public void GetData()
{
Foo foo = bar.GetData();
if(foo == null)
{
bar.addItem("Test");
GetData();
return;
}
//Use the bar object
}
有什么想法或更好的方法来处理这个问题吗?
更新
首先,这不是我的实际代码,为了简洁起见,我创建了这个片段。接下来请假设一旦向 bar 添加了一个值,那么 IF 语句将被绕过,代码部分将继续并使用 bar 对象。我只想创建一个方法,首先检查以确保 bar 对象不为空,如果不是,则继续运行该方法中的其余代码。对困惑感到抱歉。