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