Udostępnij za pośrednictwem


CA1830: Preferuj silnie typizowane przeciążenia metody Append i Insert w programie StringBuilder

Właściwości Wartość
Identyfikator reguły CA1830
Tytuł Preferuj silnie typizowane przeciążenia metod Append i Insert w elemencie StringBuilder
Kategoria Wydajność
Poprawka powodująca niezgodność lub niezgodność Niezgodność
Domyślnie włączone na platformie .NET 9 Jako sugestia

Przyczyna

Wywołano StringBuilder Append metodę or Insert z argumentem, który był wynikiem wywołania ToString typu, dla którego Append metoda lub Insert ma dedykowane przeciążenie.

Opis reguły

Append i Insert zapewniają przeciążenia dla wielu typów poza String. Jeśli to możliwe, preferuj przeciążenia silnie typizowane przy użyciu metody ToString() i przeciążenia opartego na ciągach.

Jak naprawić naruszenia

Usuń niepotrzebne ToString() wywołanie.

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

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć naruszenie tej reguły, jeśli nie martwisz się o wpływ wydajności z niepotrzebnych alokacji ciągów.

Pomijanie ostrzeżenia

Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

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

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

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

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.

Zobacz też