CA1505: Evitar código que no se puede mantener
Propiedad | Value |
---|---|
Identificador de la regla | CA1505 |
Título | Evitar código que no se puede mantener |
Categoría | Capacidad de mantenimiento |
La corrección es problemática o no problemática | Poco problemático |
Umbral predeterminado | 10 |
Habilitado de forma predeterminada en .NET 8 | No |
Causa
Un tipo, método, campo, propiedad o evento tiene un valor de índice de mantenimiento bajo.
Descripción de la regla
La regla notifica una infracción cuando el índice de mantenimiento de un tipo, método, campo, propiedad o evento es inferior a 10. Sin embargo, puede configurar el umbral.
El índice de mantenimiento se calcula con las siguientes métricas: líneas de código, volumen de programa y complejidad ciclomática. (El volumen de programa es una medida de la dificultad de comprender un tipo o un método basado en el número de operadores y operandos del código. La complejidad ciclomática es una medida de la complejidad estructural del tipo o método). Puede obtener más información sobre las métricas del código en Cálculo de la complejidad y el mantenimiento del código administrado.
Un índice de mantenimiento bajo indica que un tipo o método resulta probablemente difícil de mantener y se debería volver a diseñar.
Cómo corregir infracciones
Para corregir esta infracción, vuelva a diseñar el tipo o método e intente dividirlo en tipos o métodos más pequeños y más centrados.
Cuándo suprimir las advertencias
Puede suprimir esta advertencia cuando el tipo o el método no se pueden dividir o se consideran mantenibles a pesar de su gran tamaño.
Nota
Es posible que vea advertencias de falsos positivos de esta regla si se aplica todo lo siguiente:
- Está usando Visual Studio 2022, versión 17.5 o posterior, con una versión anterior del SDK de .NET, es decir, .NET 6 o una anterior.
- Está usando los analizadores del SDK de .NET 6 o una versión anterior de los paquetes del analizador, como Microsoft.CodeAnalysis.FxCopAnalyzers.
Los falsos positivos se deben a un cambio importante en el compilador de C#. Considere la posibilidad de usar un analizador más reciente que incluya la corrección de las advertencias de falsos positivos. Actualice a Microsoft.CodeAnalysis.NetAnalyzers, versión 7.0.0-preview1.22464.1 o posterior, o bien use los analizadores del SDK de .NET 7.
Supresión de una advertencia
Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.
#pragma warning disable CA1505
// The code that's violating the rule is on this line.
#pragma warning restore CA1505
Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none
del archivo de configuración.
[*.{cs,vb}]
dotnet_diagnostic.CA1505.severity = none
Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.
Configuración del umbral
Puede configurar el umbral en el que se activa esta regla y los tipos de símbolos que se van a analizar. Los tipos de símbolos permitidos son:
Assembly
Namespace
Type
Method
Field
Event
Property
Cree un archivo de texto denominado CodeMetricsConfig.txt.
Agregue el umbral deseado al archivo de texto con el formato siguiente:
CA1505: 20
En este ejemplo, la regla se configura para activarse cuando el índice de mantenimiento de un tipo, método, campo, propiedad o evento es inferior a 20.
CA1505(Method): 5 CA1505(Type): 15
En este ejemplo, la regla se configura para activarse cuando el índice de mantenimiento de un método es inferior a 5 o el índice de mantenimiento de un tipo es inferior a 15. Con este archivo de configuración, la regla seguirá marcando campos, propiedades y eventos cuyo índice de mantenimiento sea menor que el umbral predeterminado (10).
En el archivo del proyecto, marque la acción de compilación del archivo de configuración como AdditionalFiles. Por ejemplo:
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>