Udostępnij przez


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 10 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.