CA1830: Preferir os métodos Acrescentar e Inserir fortemente tipados provoca uma sobrecarga no StringBuilder
Property | Valor |
---|---|
ID da regra | CA1830 |
Título | Preferir os métodos Acrescentar e Inserir fortemente tipados provoca uma sobrecarga no StringBuilder |
Categoria | Desempenho |
Correção interruptiva ou sem interrupção | Sem interrupção |
Habilitado por padrão no .NET 8 | Como sugestão |
Causa
Um StringBuilder Append
ou Insert
método foi chamado com um argumento que foi o resultado de chamar ToString
um tipo para o qual o Append
ou Insert
método tem uma sobrecarga dedicada.
Descrição da regra
Append e Insert fornecem sobrecargas para vários tipos além de String. Quando possível, prefira as sobrecargas fortemente tipadas, em vez de usar ToString() e a sobrecarga baseada em cadeia de caracteres.
Como corrigir violações
Exclua o ToString()
desnecessário da invocação.
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();
}
}
Quando suprimir avisos
É seguro suprimir uma violação dessa regra se você não estiver preocupado com o impacto no desempenho de alocações de cadeia de caracteres desnecessárias.
Suprimir um aviso
Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar a regra.
#pragma warning disable CA1830
// The code that's violating the rule is on this line.
#pragma warning restore CA1830
Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1830.severity = none
Para obter mais informações, confira Como suprimir avisos de análise de código.