Исправление является критическим или не критическим
Не критическое
Включен по умолчанию в .NET 9
Как предложение
Причина
Это правило срабатывает, когда строка длиной в один символ передается в метод Append.
Описание правила
При вызове StringBuilder.Append со строкой длиной в один символ рекомендуется использовать const char вместо единичной длины const string, чтобы повысить производительность.
Устранение нарушений
Нарушение можно устранить вручную. В некоторых случаях для исправления кода в Visual Studio можно использовать быстрые действия. Примеры:
Пример 1
Вызовы StringBuilder.Append со строковым литералом единичной длины:
C#
using System;
using System.Text;
namespaceTestNamespace
{
classTestClass
{
privatevoidTestMethod()
{
StringBuilder sb = new StringBuilder();
sb.Append("a");
}
}
}
Совет
Для этого правила в Visual Studio доступно исправление кода. Чтобы использовать его, поместите курсор на нарушение и нажмите клавиши CTRL+ (период). Выберите " StringBuilder.Append(char)" при необходимости. В списке параметров, представленных.
Исправление, примененное в Visual Studio:
C#
using System;
using System.Text;
namespaceTestNamespace
{
classTestClass
{
privatevoidTestMethod()
{
StringBuilder sb = new StringBuilder();
sb.Append('a');
}
}
}
В некоторых случаях, например при использовании поля класса единичной длины const string, Visual Studio не предлагает исправление кода (но анализатор по-прежнему срабатывает). В этих случаях требуется исправление вручную.
Пример 2
Вызовы StringBuilder.Append с полем класса единичной длины const string:
cs
using System;
using System.Text;
namespaceTestNamespace
{
publicclassProgram
{
publicconststring unitString = "a";
staticvoidMain(string[] args)
{
StringBuilder sb = new StringBuilder();
sb.Append(unitString);
}
}
}
После тщательного анализа unitString можно изменить на char, не вызывая ошибок сборки.
cs
using System;
using System.Text;
namespaceTestNamespace
{
publicclassProgram
{
publicconstchar unitString = 'a';
staticvoidMain(string[] args)
{
StringBuilder sb = new StringBuilder();
sb.Append(unitString);
}
}
}
Когда лучше отключить предупреждения
Нарушение этого правила можно отключить, если вы не беспокоитесь об улучшении производительности при использовании StringBuilder.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
C#
#pragmawarning disable CA1834// The code that's violating the rule is on this line.#pragmawarning restore CA1834
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.