すべて -- 古いコードのリファクタリングを行っており、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 オブジェクトが使用されると仮定してください。最初にバー オブジェクトが null でないことを確認し、そうでない場合はメソッド内の残りのコードを実行するメソッドを 1 つだけ作成したいと考えています。混乱させて申し訳ありません。