Compartilhar via


CA1514: evitar o argumento de comprimento redundante

Propriedade Valor
ID da regra CA1514
Título Evitar argumento de comprimento redundante
Categoria Facilidade de manutenção
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão no .NET 8 Como sugestão

Causa

Um argumento de comprimento redundante é passado para String.Substring, Span<T>.Slice, ReadOnlySpan<T>.Slice ou Memory<T>.Slice ao dividir até o final de uma cadeia de caracteres ou buffer.

Descrição da regra

Um argumento de comprimento explicitamente calculado pode ser propenso a erros e é desnecessário quando você está fatiando para o final de uma cadeia de caracteres ou buffer.

O código que omite o argumento de comprimento é mais legível e sustentável.

Como corrigir violações

Remova o argumento de comprimento.

Exemplo

O snippet de código a seguir mostra uma violação da 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!"

O seguinte snippet de código conserta a violação:

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 suprimir avisos

Será seguro suprimir uma violação dessa regra se você não estiver preocupado com a manutenção do código.

Suprimir um aviso

Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar a regra.

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

Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

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

Para obter mais informações, confira Como suprimir avisos de análise de código.