DA0001. Использование StringBuilder для объединений
Идентификатор правила |
DA0001 |
Категория |
Использование .NET Framework |
Методы профилирования |
Выборка Инструментирование |
Сообщение |
Рассмотрите возможность использования StringBuilder для конкатенации строк |
Тип сообщения |
Предупреждение |
Причина
Вызовы System.String.Concat составляют значительную часть данных профилирования.Для построения строк из нескольких сегментов рекомендуется использовать StringBuilder.
Описание правила
Объект String невозможно изменить.Таким образом любые изменения в строке приводят к созданию нового объекта строки и сборке мусора оригинала.Данное поведение остается неизменным независимо от используемого метода: явный вызов String.Concat или использование операторов объединения строк, например + или +=..Если эти методы вызываются часто, например при кратком цикле добавления символов в строку, производительность программы может снизиться.
Класс StringBuilder является изменяемым объектом и, в отличие от System.String, большинство методов в классе StringBuilder, изменяющих экземпляр данного класса, возвращает ссылку на этот же экземпляр.Можно вставлять символы или добавлять текст в экземпляр StringBuilder и удалить или заменить символы в экземпляре без необходимости выделения нового экземпляра и удаления исходного экземпляра.
Анализ предупреждения
Дважды щелкните сообщение в окне со списком ошибок, чтобы перейти к Представление сведений о функции данных примера профиля.Найдите секции программы, наиболее часто использующие объединение строк.Воспользуйтесь классом StringBuilder для сложных манипуляций со строками, включая часто выполняемые операции объединения строк.
Дополнительные сведения о порядке работы со строками см. в подразделе Операции со строками раздела Глава 5 - Улучшение производительности управляемого кода библиотеки шаблонов и практических рекомендаций Майкрософт.