Feb 06, 2023 00:22
Код, который моему коллеге пришлось поотлаживать.
using var writer = new StreamWriter(stream);
writer.WriteLine("text");
using var other = new StreamReader(new MemoryStream(stream.ToArray()));
Это пример того, что в C# опциональность {} у using-оператора - не просто убирание «лишних» символов, а опция, применение которой должно быть осознанно. Фигурные скобки явно задают время жизни объекта, давая возможность минимизировать его. Нельзя просто выставить в настройках стиля кода «всегда без фигурных скобок». Собственно, что наша команда и сделала у решарпера.
А да. Проблема в коде выше - никто не делает flush объекту stream. А вот явно поставленные {} на минимальный интервал не допустили бы жука.
cadwise,
csharp,
жуки