CA1505: Evitar código de difícil manutenção

Property Valor
ID da regra CA1505
Título Evitar código de difícil manutenção
Categoria Facilidade de manutenção
Correção interruptiva ou sem interrupção Sem interrupção
Limite padrão 10
Habilitado por padrão no .NET 8 Não

Causa

Um tipo, método, campo, propriedade ou evento tem um valor de índice de baixa 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 é menor que 10. No entanto, você pode configurar o limite.

O índice de facilidade de manutenção é 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 reconhecer 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. Saiba saber mais sobre as métricas de código em Medir a complexidade e a facilidade de manutenção do código gerenciado.

Um índice de facilidade de manutenção baixo indica que um tipo ou método é provavelmente difícil de manter e um bom candidato para um novo design.

Como corrigir violações

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

Quando suprimir avisos

Você poderá suprimir esse aviso quando o tipo ou método não puder ser dividido ou se for considerado de fácil manutenção apesar do tamanho grande.

Observação

Você pode ver avisos de falsos positivos desta regra se todos os itens a seguir se aplicarem:

  • 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 devido a uma alteração interruptiva no compilador de C#. Considere usar 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

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 CA1505
// The code that's violating the rule is on this line.
#pragma warning restore CA1505

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.CA1505.severity = none

Para obter mais informações, confira 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 que serão analisados. Os tipos de símbolo 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 está configurada para ser acionada quando o índice de manutenção de um tipo, método, campo, propriedade ou evento for menor que 20.

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

    Neste exemplo, a regra está configurada para ser acionada quando o índice de manutenção de um método for menor que 5 ou o índice de manutenção de um tipo for 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>
    

Confira também