Share via


CA1708: Identifierare bör skilja sig mer än skiftläge

Property Värde
Regel-ID CA1708
Rubrik Identifierare bör skilja sig mer än skiftläge
Kategori Namngivning
Korrigeringen är icke-bakåtkompatibel Bryta
Aktiverad som standard i .NET 8 Nej

Orsak

Namnen på två typer, medlemmar, parametrar eller fullständigt kvalificerade namnområden är identiska när de konverteras till gemener.

Som standard tittar den här regeln bara på externt synliga typer, medlemmar och namnområden, men detta kan konfigureras.

Regelbeskrivning

Identifierare för namnområden, typer, medlemmar och parametrar kan inte bara skilja sig åt från fall till fall eftersom språk som är avsedda för den vanliga språkkörningen inte behöver vara skiftlägeskänsliga. Visual Basic är till exempel ett vanligt skiftlägesokänsligt språk.

Så här åtgärdar du överträdelser

Välj ett namn som är unikt när det jämförs med andra identifierare på ett skiftlägesokänsligt sätt.

När du ska ignorera varningar

Ignorera inte en varning från den här regeln. Biblioteket kanske inte kan användas på alla tillgängliga språk i .NET.

Konfigurera kod för analys

Använd följande alternativ för att konfigurera vilka delar av kodbasen som regeln ska köras på.

Du kan konfigurera det här alternativet för bara den här regeln, för alla regler som den gäller för eller för alla regler i den här kategorin (namngivning) som den gäller för. Mer information finns i Konfigurationsalternativ för kodkvalitetsregel.

Inkludera specifika API-ytor

Du kan konfigurera vilka delar av kodbasen som ska köras med den här regeln baserat på deras tillgänglighet. Om du till exempel vill ange att regeln endast ska köras mot den icke-offentliga API-ytan lägger du till följande nyckel/värde-par i en .editorconfig-fil i projektet:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Exempel på en överträdelse

I följande exempel visas ett brott mot den här regeln.

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

I följande exempel visas ett sätt att åtgärda överträdelsen

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