私のメソッドは多くの点で返します。実行中にnewDataも多くの点で構築します。どこに戻っても、私は構築された結果を保存して保存する必要があります。 "return"を見逃すことはありません。try-finallyブロックでコードを囲んだので、今度はnewDataが格納されることを確信しています。try-finallyを使ってメソッドが終了したら何かが実行されることを確認するのは良いことですか?
List<X> newData = new List<X>();
try
{
....
update newData
.....
return;
.....
....
update newData
....
update newData
return;
.....
return;
} finally
{
// copy newData to data
}
しかし、私は例外を捕まえていません。このコードは例外を処理するためのものではありません。一般的に受け入れることができますか、別のより良いアプローチを提案することはできますか?
[switch文](http://msdn.microsoft.com/en-us/library/06tc147t%28v=vs.100%29.aspx)を使用できるようです。私はあなたがなぜすぐに戻る必要があるかわかりません。 –
意図したとおりに動作する場合にのみ受け入れられます。動作しない場合は、それを小さな関数にリファクタリングしてみてください。もしそうなら、大きな問題は何ですか?より詳細なソースコードを見ることなく、私は特別な提案はできません。 – Flaise
誰かがプラグを抜かない限り、 'finally'ブロックはどんな場合でも実行され、コードは期待どおりに動作します。しかし、すでに他の人が指摘しているように、あなたのコードを構造化する良い方法があります。 –