Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
| 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 łamiąca lub nienaruszająca | Niezgodność |
| Domyślnie włączone na platformie .NET 10 | Jako sugestia |
| Zastosowane języki | C# i Visual Basic |
Przyczyna
Została wywołana metoda StringBuilderAppend lub Insert z argumentem, który był wynikiem wywołania ToString na typie, dla którego metoda Append lub Insert ma specjalne 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 zamiast używania metody ToString() i przeciążeń przyjmujących ciągi.
Jak naprawić naruszenia
Usuń niepotrzebne ToString() z wywołania.
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 zignorować naruszenie tej reguły, jeśli nie martwisz się o wpływ na wydajność wynikający 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.