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