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.