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

Метод EnsureCapacity

Метод EnsureCapacity класса StringBuilder увеличивает внутренний запас буфера, если он меньше переданного числа. Параметр задаёт минимальную вместимость в символах. Метод возвращает фактическое значение Capacity после возможного расширения. Длина текста Length при этом не меняется.

Синтаксис

int cap = sb.EnsureCapacity(int capacity);

Пример

Давайте заранее запросим вместимость 64 символов:

using System; using System.Text; class Program { static void Main() { StringBuilder sb = new StringBuilder("abcde"); sb.EnsureCapacity(64); Console.WriteLine(sb.Capacity >= 64); } }

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

True

Пример

Давайте допишем много текста после резервирования буфера:

using System; using System.Text; class Program { static void Main() { StringBuilder sb = new StringBuilder(); sb.EnsureCapacity(32); sb.Append("abcde").Append("12345"); Console.WriteLine(sb.ToString()); } }

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

"abcde12345"

Пример

Давайте вызовем EnsureCapacity, когда запас уже достаточен:

using System; using System.Text; class Program { static void Main() { StringBuilder sb = new StringBuilder(128); sb.Append("abcde"); sb.EnsureCapacity(16); Console.WriteLine(sb.Capacity >= 16); Console.WriteLine(sb.ToString()); } }

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

True "abcde"

Пример

Давайте сравним длину текста и запас после EnsureCapacity:

using System; using System.Text; class Program { static void Main() { StringBuilder sb = new StringBuilder("12345"); sb.EnsureCapacity(48); Console.WriteLine(sb.Length); Console.WriteLine(sb.Capacity >= sb.Length); } }

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

5 True

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

  • свойство Capacity,
    которое задаёт размер внутреннего буфера
  • свойство Length,
    которое отражает длину текста, а не запас
  • метод Append,
    который дописывает данные в конец буфера
  • метод Clear,
    который обнуляет текст, сохраняя запас
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить