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

Свойство Capacity

Свойство Capacity класса StringBuilder возвращает или задаёт размер внутреннего буфера - сколько символов можно хранить без перераспределения памяти. Это запас, а не длина текста: свойство Length отражает только текущее содержимое. При записи Capacity значение не должно быть меньше Length.

Синтаксис

int cap = sb.Capacity; sb.Capacity = newCapacity;

Пример

Давайте создадим буфер с заданным запасом и проверим, что он не меньше длины текста:

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

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

True

Пример

Давайте увеличим запас через EnsureCapacity и проверим условие для числа 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("abcde"); int capBefore = sb.Capacity; sb.Clear(); Console.WriteLine(sb.Length); Console.WriteLine(sb.Capacity >= capBefore); } }

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

0 True

Пример

Давайте зададим Capacity явно, когда планируем длинный текст:

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

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

True "12345"

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

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