次のスニペットから始めましょう。
Foreach(Record item in RecordList){
..
item = UpdateRecord(item, 5);
..
}
UpdateRecode 関数は、アイテムの一部のフィールドを変更し、変更されたオブジェクトを返します。この場合、コンパイラは foreach 反復でアイテムを更新できないことを示す例外をスローします。
UpdateRecord メソッドは void を返すように変更され、スニペットは次のようになります。
Foreach(Record item in RecordList){
..
UpdateRecord(item, 5);
..
}
この場合、レコードは参照型であるため、アイテムは更新されます。しかし、コードが読めなくなります。
私が取り組んでいるプロジェクトには、ほぼ同じコードの foreach ループがたくさんあるので、レコードの一部を更新するメソッドを作成したいと考えています。これを行う良い方法はありますか?コードをさらに破棄するのではなく、コードを読みやすくするものはありますか?