Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
794 of 1492 menu
◀ ▶

Свойство MemoryStream.Capacity

Свойство Capacity у растущего MemoryStream можно увеличить. Значение меньше Length бросает исключение. Данные занимают только первые Length байт - см. ToArray.

Синтаксис

int cap = memoryStream.Capacity; memoryStream.Capacity = 8;

Пример

Давайте поднимем Capacity после записи трёх байт:

using System; using System.IO; class Program { static void Main() { using (MemoryStream stream = new MemoryStream()) { stream.Write(new byte[] { 97, 98, 99 }, 0, 3); stream.Capacity = 8; bool res = stream.Length == 3 && stream.Capacity >= 8; Console.WriteLine(res); } } }

Результат выполнения кода:

True

Пример

Давайте попробуем задать Capacity меньше длины:

using System; using System.IO; class Program { static void Main() { using (MemoryStream stream = new MemoryStream()) { stream.Write(new byte[] { 97, 98, 99 }, 0, 3); try { stream.Capacity = 2; } catch (ArgumentOutOfRangeException) { Console.WriteLine("fail"); } } } }

Результат выполнения кода:

"fail"

Пример

Давайте убедимся, что ToArray не растягивается до Capacity:

using System; using System.IO; class Program { static void Main() { using (MemoryStream stream = new MemoryStream()) { stream.Write(new byte[] { 97, 98, 99 }, 0, 3); stream.Capacity = 8; bool res = stream.ToArray().Length == 3; Console.WriteLine(res); } } }

Результат выполнения кода:

True

Смотрите также

  • GetBuffer,
    массив ёмкости
  • MemoryStream,
    растущий поток
  • ToArray,
    длина копии без запаса
  • Write,
    запись в буфер
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить