Выход из блока using через return. Произойдет ли Dispose()? - C#
Формулировка задачи:
Такой код:
Оператор return сейчас размещен внутри блока using класса MemoryStream. Будет ли вызван Dispose() при выходе из метода?
Листинг программы
- static class StringExtension
- {
- public static string GZipCompress(this string s)
- {
- var encoding = new UTF8Encoding();
- using (var memoryStream = new MemoryStream())
- {
- using (var compressionStream = new GZipStream(memoryStream, CompressionMode.Compress))
- {
- byte[] bytes = encoding.GetBytes(s);
- compressionStream.Write(bytes, 0, bytes.Length);
- }
- return encoding.GetString(memoryStream.ToArray());
- }
- }
- }
Решение задачи: «Выход из блока using через return. Произойдет ли Dispose()?»
textual
Листинг программы
- class SomeUnit : IDisposable
- {
- public void Dispose()
- {
- Console.WriteLine("SomeUnit.Dispose");
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д