Udostępnij za pośrednictwem


CA1514: Unikaj argumentu nadmiarowej długości

Właściwości Wartość
Identyfikator reguły CA1514
Tytuł Unikaj nadmiarowego argumentu długości
Kategoria Łatwość konserwacji
Poprawka powodująca niezgodność lub niezgodność Niezgodność
Domyślnie włączone na platformie .NET 8 Jako sugestia

Przyczyna

Nadmiarowy argument długości jest przekazywany do String.Substring, , Span<T>.SliceReadOnlySpan<T>.Slicelub Memory<T>.Slice podczas fragmentowania na końcu ciągu lub buforu.

Opis reguły

Jawnie obliczony argument długości może być podatny na błędy i jest niepotrzebny podczas fragmentowania na końcu ciągu lub buforu.

Kod, który pomija argument długości, jest bardziej czytelny i możliwy do utrzymania.

Jak naprawić naruszenia

Usuń argument length.

Przykład

Poniższy fragment kodu przedstawia naruszenie ca1514:

string message = "Hello World!";
string world = message.Substring(6, message.Length - 6); // "World!"
Dim message As String = "Hello World!"
Dim world As String = message.Substring(6, message.Length - 6) ' "World!"

Poniższy fragment kodu naprawia naruszenie:

string message = "Hello World!";
string world = message.Substring(6); // "World!"
Dim message As String = "Hello World!"
Dim world As String = message.Substring(6) ' "World!"

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć naruszenie tej reguły, jeśli nie martwisz się o konserwację kodu.

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 CA1514
// The code that's violating the rule is on this line.
#pragma warning restore CA1514

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

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

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