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