CA1830: Preferujte přetížení metody Append a Insert silného typu v StringBuilderu

Vlastnost Hodnota
ID pravidla CA1830
Název Upřednostňovat pro StringBuilder přetížení metod Append a Insert silného typu
Kategorie Výkon
Oprava způsobující chybu nebo chybu způsobující chybu Nenarušující
Povoleno ve výchozím nastavení v .NET 8 Jako návrh

Příčina

Byla StringBuilderAppend volána nebo Insert metoda s argumentem, který byl výsledkem volání ToString typu, pro který Append má nebo Insert metoda vyhrazené přetížení.

Popis pravidla

Append a Insert poskytují přetížení pro více typů nad rámec String. Pokud je to možné, upřednostněte přetížení silného typu před použitím ToString() a přetížení založené na řetězci.

Jak opravit porušení

Odstraňte nepotřebné ToString() volání.

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();
    }
}

Kdy potlačit upozornění

Je bezpečné potlačit porušení tohoto pravidla, pokud vás nezajímá dopad na výkon nepotřebných přidělení řetězců.

Potlačení upozornění

Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

#pragma warning disable CA1830
// The code that's violating the rule is on this line.
#pragma warning restore CA1830

Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none konfiguračním souboru.

[*.{cs,vb}]
dotnet_diagnostic.CA1830.severity = none

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Viz také