CA1856: Uso incorrecto del atributo ConstantExpected
Propiedad | Value |
---|---|
Identificador de la regla | CA1856 |
Título | Uso incorrecto del atributo ConstantExpected |
Categoría | Rendimiento |
La corrección es problemática o no problemática | Poco problemático |
Habilitado de forma predeterminada en .NET 8 | Como error |
Causa
El atributo ConstantExpectedAttribute no se aplica correctamente en un parámetro.
Descripción de la regla
Esta regla marca los usos incorrectos del atributo ConstantExpectedAttribute, como:
- El valor Min o Max no es compatible con el tipo de parámetro.
- El tipo de parámetro no se admite para el atributo ConstantExpectedAttribute.
- Los valores Min y Max se invierten.
- El valor Min o Max no se ajusta a los límites del valor del parámetro.
Cómo corregir infracciones
Corrija el código como se indica en el mensaje de error específico que reciba.
Ejemplo
En el siguiente fragmento de código se muestran las infracciones de CA1856:
using System.Diagnostics.CodeAnalysis;
// Violation - value not compatible with parameter type.
static void M1([ConstantExpected(Min = "a")] char val) { }
// Violation - unsupported type for attribute.
static void M2([ConstantExpected] decimal val) { }
// Violation - Min and Max values are inverted.
static void M3([ConstantExpected(Max = 0, Min = 1)] int val) { }
// Violation - value does not fit within the parameter value bounds.
static void M4([ConstantExpected(Min = long.MinValue)] int val) { }
El siguiente fragmento de código corrige las infracciones:
using System.Diagnostics.CodeAnalysis;
static void M1([ConstantExpected(Min = 'a')] char val) { }
static void M2(decimal val) { }
static void M3([ConstantExpected(Min = 0, Max = 1)] int val) { }
static void M4([ConstantExpected(Min = int.MinValue)] int val) { }
Cuándo suprimir las advertencias
Una infracción de esta regla indica un error en el código y siempre debe corregirse.
Colaborar con nosotros en GitHub
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.