Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA1830 |
| Заголовок | предпочитать строго типизированные перегрузки методов Append и Insert в StringBuilder |
| Категория | Производительность |
| Исправление является критическим или не критическим | неразрывный |
| Включен по умолчанию в .NET 10 | Как предложение |
| Применимые языки | C# и Visual Basic |
Причина
Метод StringBuilder или AppendInsert был вызван с аргументом, который был результатом вызова ToString для типа, для которого метод Append или Insert имеет выделенную перегрузку.
Описание правила
Методы Append и Insert предоставляют перегрузки для нескольких типов, помимо String. По возможности рекомендуется использовать строго типизированные перегрузки вместо использования ToString() и перегрузки на основе строк.
Устранение нарушений
Удалите ненужный объект ToString() из вызова.
using System.Text;
class C
{
int _value;
// Violation
public void Log(StringBuilder destination)
{
destination.Append("Value: ").Append(_value.ToString()).AppendLine();
}
// Fixed
public void Log(StringBuilder destination)
{
destination.Append("Value: ").Append(_value).AppendLine();
}
}
Когда лучше отключить предупреждения
Можно безопасно отключить это правило, если вас не беспокоит влияние ненужных выделений строк на производительность системы.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA1830
// The code that's violating the rule is on this line.
#pragma warning restore CA1830
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA1830.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.