Compartir vía


CA1712: No utilizar prefijos en valores de enumeración con el nombre del tipo

Propiedad Value
Identificador de la regla CA1712
Título No utilizar prefijos en valores de enumeración con el nombre del tipo
Categoría Nomenclatura
La corrección es problemática o no problemática Problemático
Habilitado de forma predeterminada en .NET 8 No

Causa

Una enumeración contiene un miembro cuyo nombre comienza con el nombre de tipo de la enumeración.

Descripción de la regla

Los nombres de los miembros de la enumeración no llevan el nombre de tipo como prefijo porque se espera que las herramientas de desarrollo proporcionen la información de tipo.

Las convenciones de nomenclatura proporcionan una apariencia común para las bibliotecas destinadas a Common Language Runtime. Esto reduce el tiempo necesario para aprender una nueva biblioteca de software y aumenta la confianza del cliente en que la biblioteca la ha desarrollado alguien con experiencia en desarrollo de código administrado.

Cómo corregir infracciones

Para corregir una infracción de esta regla, quite el prefijo del nombre de tipo del miembro de enumeración.

Cuándo suprimir las advertencias

No suprima las advertencias de esta regla.

Ejemplo

En el ejemplo siguiente se muestra una enumeración con un nombre incorrecto seguido de la versión corregida.

public enum DigitalImageMode
{
    DigitalImageModeBitmap = 0,
    DigitalImageModeGrayscale = 1,
    DigitalImageModeIndexed = 2,
    DigitalImageModeRGB = 3
}

public enum DigitalImageMode2
{
    Bitmap = 0,
    Grayscale = 1,
    Indexed = 2,
    RGB = 3
}
Imports System

Namespace ca1712

    Enum DigitalImageMode

        DigitalImageModeBitmap = 0
        DigitalImageModeGrayscale = 1
        DigitalImageModeIndexed = 2
        DigitalImageModeRGB = 3

    End Enum

    Enum DigitalImageMode2

        Bitmap = 0
        Grayscale = 1
        Indexed = 2
        RGB = 3

    End Enum

End Namespace

Configuración del código para analizar

Use la opción siguiente para configurar en qué partes del código base ejecutar esta regla.

Puede configurar esta opción solo para esta regla, para todas las reglas a las que se aplica o para todas las reglas de esta categoría (Nomenclatura) a las que se aplica. Para más información, vea Opciones de configuración de reglas de calidad de código.

Desencadenador de prefijo de valores de enumeración

Puede configurar el número de valores de enumeración necesarios para desencadenar la regla. Por ejemplo, para especificar que la regla se desencadene si uno o varios valores de enumeración empiezan con el nombre de tipo de enumeración, agregue el siguiente par clave-valor a un archivo .editorconfig en el proyecto:

dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue

Ejemplos:

Valor de la opción Resumen
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue La regla se desencadena si alguno de los valores de enumeración empieza por el nombre del tipo de enumeración.
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AllEnumValues La regla se desencadena si todos los valores de enumeración empieza por el nombre del tipo de enumeración.
dotnet_code_quality.CA1712.enum_values_prefix_trigger = Heuristic La regla se desencadena con la heurística predeterminada, es decir, cuando al menos el 75 % de los valores de enumeración empieza por el nombre del tipo de enumeración.

Consulte también