Share via


CA1514: Undvik argument för redundant längd

Property Värde
Regel-ID CA1514
Title Undvik argument för redundant längd
Kategori Underhåll
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard i .NET 8 Som förslag

Orsak

Ett redundant längdargument skickas till String.Substring, Span<T>.Slice, ReadOnlySpan<T>.Sliceeller Memory<T>.Slice vid segmentering till slutet av en sträng eller buffert.

Regelbeskrivning

Ett explicit beräknat längdargument kan vara felbenäget och är onödigt när du delar in i slutet av en sträng eller buffert.

Kod som utelämnar längdargumentet är mer läsbar och underhållsbar.

Så här åtgärdar du överträdelser

Ta bort längdargumentet.

Exempel

Följande kodfragment visar ett brott mot 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!"

Följande kodfragment åtgärdar överträdelsen:

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

När du ska ignorera varningar

Det är säkert att förhindra en överträdelse av den här regeln om du inte bryr dig om kodens underhållbarhet.

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

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

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

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

Mer information finns i Så här utelämnar du kodanalysvarningar.