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, která může být destruktivní nebo nedestruktivní Nezlomitelný
Povoleno ve výchozím nastavení v .NET 10 Jako návrh
Příslušné jazyky C# a Visual Basic

Příčina

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

Popis pravidla

Append a Insert poskytují přetížení pro více typů kromě 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() z 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 se nebojíte dopadu na výkon zbytečných alokací ř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é