CA1505: Evite código insustentável
Propriedade | valor |
---|---|
ID da regra | CA1505 |
Cargo | 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 8 | Não |
Causa
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 todas as seguintes situações 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 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 para um arquivo, pasta ou projeto, defina sua severidade 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
Crie um arquivo de texto chamado CodeMetricsConfig.txt.
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 manutenção 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 inferior ao limite padrão (10).
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>