Как это должно работать нормально.Вот реорганизованная версия, вы можете выбрать, какие биты рефакторинга вам нравятся.
public void WriteFrameCodesAsBinary(IEnumerable<int> frameCodes)
{
using (FileStream fileStream = new FileStream(binaryFilePath, FileMode.Create))
using (BinaryWriter binaryWriter = new BinaryWriter(fileStream))
{
foreach (int frameCode in frameCodes) {
binaryWriter.Write(frameCode);
}
}
}
Я бы переименовал функцию, чтобы описать действие, которое она будет выполнять.FrameCodesBinaryWriter
для меня больше похоже на название класса.
Если вам не нужно упорядочивать List<T>
, возможно, было бы лучше принять IEnumerable<T>
.Таким образом, вы можете быть более гибкими в отношении того, что вы передаете.
Некоторые люди предпочитают составлять свои операторы использования, чтобы удалить уровень вложенности (отступ кода).Лично я не большой поклонник этого, но это вопрос личного вкуса и стиля.
Использование IEnumerable<T>
заставляет нас использовать foreach
, но даже с List<T>
это может выглядеть чище/ сделать более очевидным, что вы перебираете список.
Как уже упоминалось ранее, если вы используете using
, вам не нужно явно закрывать двоичный модуль записи - это будет сделано автоматически, когда using
блок снят.