Начнем со следующего фрагмента:
Foreach(Record item in RecordList){
..
item = UpdateRecord(item, 5);
..
}
Функция UpdateRecode изменяет некоторое поле элемента и возвращает измененный объект. В этом случае компилятор выдает исключение, говорящее, что элемент не может быть обновлен в итерации foreach.
Теперь метод UpdateRecord изменен так, что он возвращает void, и фрагмент будет выглядеть следующим образом:
Foreach(Record item in RecordList){
..
UpdateRecord(item, 5);
..
}
В этом случае элемент будет обновлен, поскольку запись является ссылочным типом. Но это делает код нечитаемым.
В проекте, над которым я работаю, много циклов foreach с почти одинаковым кодом снова и снова, поэтому я хотел бы создать методы, которые обновляют части записей. Есть хороший способ сделать это? Тот, который делает код более читабельным, а не уничтожает его дальше?