次の方法で共有


CA1708:識別子は、大文字と小文字の区別以外にも相違していなければなりません

プロパティ
ルール ID CA1708
Title 識別子は、大文字と小文字の区別以外にも相違していなければなりません
[カテゴリ] 名前を付ける
修正が中断ありか中断なしか あり
.NET 8 では既定で有効 いいえ

原因

型、メンバー、パラメーター、または完全修飾名前空間の 2 つの名前が、小文字に変換されると、同じになります。

既定では、この規則の対象は外部から参照可能な型とメンバーのみですが、これは構成可能です。

規則の説明

名前空間、型、メンバー、およびパラメーターの各識別子は、大文字/小文字以外のみでは区別できません。共通言語ランタイムを対象とする言語は、大文字と小文字を区別する必要はないためです。 たとえば、Visual Basic は大文字と小文字を区別しない、広く使用されている言語です。

違反の修正方法

大文字と小文字が区別されず、他の識別子と比較して一意になる名前を選択します。

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

この規則による警告は抑制しないでください。 このライブラリは、.NET で使用できる言語すべてで利用できない可能性があります。

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

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

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

特定の API サーフェイスを含める

ユーザー補助に基づいて、この規則を実行するコードベースの部分を構成できます。 たとえば、非パブリック API サーフェイスでのみ規則を実行するように指定するには、プロジェクトの .editorconfig ファイルに次のキーと値のペアを追加します。

dotnet_code_quality.CAXXXX.api_surface = private, internal

違反の例

次に、この規則違反の例を示します。

public class Class1
{
    protected string someName;
    public string SomeName => someName;
}

次に、この違反を修正する一例を示します

public class Class1
{
    protected string _someName;
    public string SomeName => _someName;
}