Condividi tramite


CA1514: Evitare l'argomento lunghezza ridondante

Proprietà valore
ID regola CA1514
Title Evitare l'argomento lunghezza ridondante
Categoria Gestibilità
Correzione che causa un'interruzione o un'interruzione Nessuna interruzione
Abilitato per impostazione predefinita in .NET 8 Come suggerimento

Causa

Un argomento di lunghezza ridondante viene passato a String.Substring, Span<T>.Slice, ReadOnlySpan<T>.Sliceo Memory<T>.Slice quando si esegue il sezionamento alla fine di una stringa o di un buffer.

Descrizione regola

Un argomento di lunghezza calcolata in modo esplicito può essere soggetto a errori e non è necessario quando si esegue il sezionamento alla fine di una stringa o di un buffer.

Il codice che omette l'argomento length è più leggibile e gestibile.

Come correggere le violazioni

Rimuovere l'argomento length.

Esempio

Il frammento di codice seguente mostra una violazione di 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!"

Il frammento di codice seguente corregge la violazione:

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

Quando eliminare gli avvisi

È possibile eliminare una violazione di questa regola se non si è preoccupati per la manutenibilità del codice.

Eliminare un avviso

Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

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

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.