Поделиться через


DA0001. Использование StringBuilder для объединений

Идентификатор правила

DA0001

Категория

Использование .NET Framework

Методы профилирования

Выборка

Инструментирование

Сообщение

Рассмотрите возможность использования StringBuilder для конкатенации строк

Тип сообщения

Предупреждение

Причина

Вызовы System.String.Concat составляют значительную часть данных профилирования.Для построения строк из нескольких сегментов рекомендуется использовать StringBuilder.

Описание правила

Объект String невозможно изменить.Таким образом любые изменения в строке приводят к созданию нового объекта строки и сборке мусора оригинала.Данное поведение остается неизменным независимо от используемого метода: явный вызов String.Concat или использование операторов объединения строк, например + или +=..Если эти методы вызываются часто, например при кратком цикле добавления символов в строку, производительность программы может снизиться.

Класс StringBuilder является изменяемым объектом и, в отличие от System.String, большинство методов в классе StringBuilder, изменяющих экземпляр данного класса, возвращает ссылку на этот же экземпляр.Можно вставлять символы или добавлять текст в экземпляр StringBuilder и удалить или заменить символы в экземпляре без необходимости выделения нового экземпляра и удаления исходного экземпляра.

Анализ предупреждения

Дважды щелкните сообщение в окне со списком ошибок, чтобы перейти к Представление сведений о функции данных примера профиля.Найдите секции программы, наиболее часто использующие объединение строк.Воспользуйтесь классом StringBuilder для сложных манипуляций со строками, включая часто выполняемые операции объединения строк.

Дополнительные сведения о порядке работы со строками см. в подразделе Операции со строками раздела Глава 5 - Улучшение производительности управляемого кода библиотеки шаблонов и практических рекомендаций Майкрософт.