Delen via


CA1514: Argument redundante lengte vermijden

Eigenschappen Weergegeven als
Regel-id CA1514
Titel Vermijd het argument redundante lengte
Categorie Onderhoudbaarheid
Oplossing is brekend of niet-brekend Niet-brekend
Standaard ingeschakeld in .NET 8 Als suggestie

Oorzaak

Er wordt een redundant lengteargument doorgegeven aanString.Substring, Span<T>.Sliceof ReadOnlySpan<T>.SliceMemory<T>.Slice bij het segmenteren aan het einde van een tekenreeks of buffer.

Beschrijving van regel

Een expliciet berekend lengteargument kan foutgevoelig zijn en is niet nodig wanneer u segmenteert naar het einde van een tekenreeks of buffer.

Code waarmee het lengteargument wordt weggelaten, is beter leesbaar en onderhoudbaar.

Schendingen oplossen

Verwijder het lengteargument.

Opmerking

In het volgende codefragment ziet u een schending van 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!"

Met het volgende codefragment wordt de schending opgelost:

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

Wanneer waarschuwingen onderdrukken

Het is veilig om een schending van deze regel te onderdrukken als u zich geen zorgen maakt over de onderhoudbaarheid van uw code.

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

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

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.

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

Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.