Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
| Propriedade | 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 | Inquebrável |
| Limite padrão | 10 |
| Habilitado por padrão no .NET 10 | Não |
| Idiomas aplicáveis | C# e Visual Basic |
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 for considerado manutenível, apesar de seu grande tamanho.
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 inclua 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:
AssemblyNamespaceTypeMethodFieldEventProperty
Crie um arquivo de texto chamado CodeMetricsConfig.txt.
Adicione o limite desejado ao arquivo de texto no seguinte formato:
CA1505: 20Neste 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): 15Neste 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).
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>