Partilhar via


CA1505: Evite código insustentável

Property valor
ID da regra CA1505
Título Evite códigos sem manutenção
Categoria Manutenibilidade
A correção está quebrando ou não quebrando Sem quebra
Limiar por defeito 10
Habilitado por padrão no .NET 9 Não

Motivo

Um tipo, método, campo, propriedade ou evento tem um baixo valor de índice de manutenção.

Descrição da regra

A regra relata uma violação quando o índice de manutenção de um tipo, método, campo, propriedade ou evento é inferior a 10. No entanto, você pode configurar o limite.

O índice de manutenibilidade é calculado usando as seguintes métricas: linhas de código, volume do programa e complexidade ciclomática. (O volume do programa é uma medida da dificuldade de compreensão de um tipo ou método baseado no número de operadores e operandos no código. A complexidade ciclomática é uma medida da complexidade estrutural do tipo ou método. Você pode saber mais sobre métricas de código em Medir a complexidade e a capacidade de manutenção do código gerenciado.

Um baixo índice de manutenibilidade indica que um tipo ou método é provavelmente difícil de manter e seria um bom candidato para redesenhar.

Como corrigir violações

Para corrigir essa violação, redesenhe o tipo ou método e tente dividi-lo em tipos ou métodos menores e mais focados.

Quando suprimir avisos

Você pode suprimir esse aviso quando o tipo ou método não puder ser dividido ou for considerado sustentável, apesar de seu tamanho grande.

Nota

Poderá ver avisos falsos positivos desta regra se se aplicarem todas as seguintes condições:

  • Você está usando o Visual Studio 2022 versão 17.5 ou posterior com uma versão mais antiga do SDK do .NET, ou seja, .NET 6 ou anterior.
  • Você está usando os analisadores do SDK do .NET 6 ou uma versão mais antiga dos pacotes do analisador, como Microsoft.CodeAnalysis.FxCopAnalyzers.

Os falsos positivos são devidos a uma mudança de quebra no compilador C#. Considere o uso de um analisador mais recente que contenha a correção para os avisos de falsos positivos. Atualize para Microsoft.CodeAnalysis.NetAnalyzers versão 7.0.0-preview1.22464.1 ou mais recente ou use os analisadores do SDK do .NET 7.

Suprimir um aviso

Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar a regra.

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

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

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

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

Configurar limite

Você pode configurar o limite no qual essa regra é acionada e os tipos de símbolos a serem analisados. Os tipos de símbolos permitidos são:

  • Assembly
  • Namespace
  • Type
  • Method
  • Field
  • Event
  • Property
  1. Crie um arquivo de texto chamado CodeMetricsConfig.txt.

  2. Adicione o limite desejado ao arquivo de texto no seguinte formato:

    CA1505: 20
    

    Neste exemplo, a regra é configurada para ser acionada quando o índice de manutenibilidade de um tipo, método, campo, propriedade ou evento é menor que 20.

    CA1505(Method): 5
    CA1505(Type): 15
    

    Neste exemplo, a regra é configurada para ser acionada quando o índice de manutenibilidade de um método é menor que 5 ou o índice de manutenibilidade de um tipo é menor que 15. Com esse arquivo de configuração, a regra continuará a sinalizar campos, propriedades e eventos cujo índice de manutenção seja menor que o limite padrão (10).

  3. No arquivo de projeto, marque a ação de compilação do arquivo de configuração como AdditionalFiles. Por exemplo:

    <ItemGroup>
      <AdditionalFiles Include="CodeMetricsConfig.txt" />
    </ItemGroup>
    

Consulte também