CA1712:列挙型値を型名のプレフィックスにしません

プロパティ
ルール ID CA1712
Title 列挙型値を型名のプレフィックスにしません
[カテゴリ] 名前を付ける
修正が中断ありか中断なしか あり
.NET 8 では既定で有効 いいえ

原因

列挙型に、列挙型の型名で始まる名前を持つメンバーが含まれています。

規則の説明

型情報は開発ツールで表示されるため、列挙型のメンバー名には、型名のプレフィックスを付けません。

名前付け規則では、共通言語ランタイムをターゲットとするライブラリの統一的な名前の付け方が規定されています。 これにより、新しいソフトウェア ライブラリを習得するまでの時間を短縮でき、マネージド コード開発の専門家によってライブラリが開発されたという信頼を顧客に与えることができます。

違反の修正方法

この規則違反を修正するには、列挙型メンバーから型名のプレフィックスを削除します。

どのようなときに警告を抑制するか

この規則による警告は抑制しないでください。

次の例では、正しくない名前を付けた列挙型の後に修正後のバージョンを示します。

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

分析するコードを構成する

次のオプションを使用して、コードベースのどの部分に対してこの規則を実行するか構成します。

このオプションを構成できる対象は、この規則だけ、それを適用するすべての規則、それを適用するこのカテゴリ (名前付け) のすべての規則のいずれかです。 詳細については、「コード品質規則の構成オプション」を参照してください。

列挙値のプレフィックス トリガー

規則をトリガーするために必要な列挙値の数を構成できます。 たとえば、列挙型の名前で始まる列挙値が 1 つ以上ある場合に規則がトリガーされるように指定するには、プロジェクトの .editorconfig ファイルに次のキーと値のペアを追加します。

dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue

例 :

オプションの値 まとめ
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AnyEnumValue 列挙型の値のいずれかが列挙型の名前で始まる場合、規則がトリガーされます。
dotnet_code_quality.CA1712.enum_values_prefix_trigger = AllEnumValues 列挙型の値のすべてが列挙型の名前で始まる場合、規則がトリガーされます。
dotnet_code_quality.CA1712.enum_values_prefix_trigger = Heuristic 規則は、デフォルトのヒューリスティックを使用してトリガーされます。つまり、列挙値の 75% 以上が列挙型の名前で始まる場合に発生します。

関連項目