Выход из блока using через return. Произойдет ли Dispose()? - C#

Узнай цену своей работы

Формулировка задачи:

Такой код:
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());
            }
        }
    }
Оператор return сейчас размещен внутри блока using класса MemoryStream. Будет ли вызван Dispose() при выходе из метода?

Решение задачи: «Выход из блока using через return. Произойдет ли Dispose()?»

textual
Листинг программы
    class SomeUnit : IDisposable
    {
        public void Dispose()
        {
            Console.WriteLine("SomeUnit.Dispose");
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы