CA1712: Non utilizzare nomi di tipo come prefisso nei valori di enumerazione

Proprietà valore
ID regola CA1712
Titolo Non usare nomi di tipo come prefisso nei valori di enumerazione
Categoria Denominazione
Correzione che causa un'interruzione o un'interruzione Interruzione
Abilitato per impostazione predefinita in .NET 8 No

Causa

Un'enumerazione contiene un membro il cui nome inizia con il nome del tipo dell'enumerazione.

Descrizione regola

I nomi dei membri di enumerazione non sono preceduti dal nome del tipo perché le informazioni sul tipo devono essere fornite dagli strumenti di sviluppo.

Le convenzioni di denominazione forniscono un aspetto comune per le librerie destinate a Common Language Runtime. Ciò riduce il tempo necessario per apprendere una nuova libreria software e aumenta la fiducia dei clienti che la libreria è stata sviluppata da un utente esperto nello sviluppo di codice gestito.

Come correggere le violazioni

Per correggere una violazione di questa regola, rimuovere il prefisso del nome del tipo dal membro di enumerazione.

Quando eliminare gli avvisi

Non escludere un avviso da questa regola.

Esempio

Nell'esempio seguente viene illustrata un'enumerazione denominata in modo non corretto seguita dalla versione corretta.

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

Configurare il codice da analizzare

Usare l'opzione seguente per configurare le parti della codebase in cui eseguire questa regola.

È possibile configurare questa opzione solo per questa regola, per tutte le regole a cui si applica o per tutte le regole in questa categoria (denominazione) a cui si applica. Per altre informazioni, vedere Opzioni di configurazione delle regole di qualità del codice.

Trigger di prefisso dei valori enumerazione

È possibile configurare il numero di valori di enumerazione necessari per attivare la regola. Ad esempio, per specificare che la regola viene attivata se uno o più valori di enumerazione iniziano con il nome del tipo di enumerazione, aggiungere la coppia chiave-valore seguente a un file con estensione editorconfig nel progetto:

dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue

Esempi:

Valore opzione Riepilogo
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue La regola viene attivata se uno dei valori di enumerazione inizia con il nome del tipo di enumerazione.
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AllEnumValues La regola viene attivata se tutti i valori di enumerazione iniziano con il nome del tipo di enumerazione.
dotnet_code_quality.CA1712.enum_values_prefix_trigger = Heuristic La regola viene attivata usando l'euristica predefinita, ovvero quando almeno il 75% dei valori di enumerazione inizia con il nome del tipo di enumerazione.

Vedi anche