コードをより読みやすいものにリファクタリングする最善の方法について、少し混乱しています。
次のコードを検討してください。
var foo = getfoo();
if(foo!=null)
{
var bar = getbar(foo);
if(bar!=null)
{
var moo = getmoo(bar);
if(moo!=null)
{
var cow = getcow(moo);
...
}
}
}
return;
ご覧のとおり、ネストされif
た各 if は以前の値に依存しているため、多数のネストされたブロックが必要です。
この点で、コードを少しきれいにする方法を考えていました。
私が自分で考えたいくつかのオプションは次のとおりです。
- 各if句の後に戻ります。つまり、メソッドを終了する場所が複数あることを意味します
- s をスロー
ArgumentNullException
します。その後、最後にそれらをキャッチし、return ステートメントを finally 句 (または try/catch ブロックの外側) に配置します。 - ラベルを操作し、
goto:
これらのオプションのほとんどは、私には少し「汚い」ように見えるので、私が作成したこの混乱をクリーンアップする良い方法があるかどうか疑問に思っていました.