Compartilhar via


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 método StringBuilderAppend ou Insert foi chamado com um argumento resultante da chamada de ToString em um tipo para o qual o método Append ou Insert 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.

Confira também