Share via


CA1716: Identifierare ska inte matcha nyckelord

Property Värde
Regel-ID CA1716
Rubrik Identifierare ska inte matcha nyckelord
Kategori Namngivning
Korrigeringen är icke-bakåtkompatibel Bryta
Aktiverad som standard i .NET 8 Nej

Orsak

Namnet på en namnrymd, typ eller virtuell medlem eller gränssnittsmedlem matchar ett reserverat nyckelord i ett programmeringsspråk.

Som standard tittar den här regeln bara på externt synliga namnområden, typer och medlemmar, men du kan konfigurera synlighets- och symboltyper.

Regelbeskrivning

Identifierare för namnområden, typer och virtuella medlemmar och gränssnittsmedlemmar bör inte matcha nyckelord som definieras av språk som är avsedda för den gemensamma språkkörningen. Beroende på vilket språk som används och nyckelordet kan kompilatorfel och tvetydigheter göra biblioteket svårt att använda.

Den här regeln kontrollerar nyckelord på följande språk:

  • Visual Basic
  • C#
  • C++/CLI

Skiftlägeskänslig jämförelse används för Visual Basic-nyckelord och skiftlägeskänslig jämförelse används för de andra språken.

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

Välj ett namn som inte visas i listan med nyckelord.

När du ska ignorera varningar

Du kan ignorera en varning från den här regeln om du är säker på att identifieraren inte förvirrar användare av API:et och att biblioteket kan användas på alla tillgängliga språk i .NET.

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

#pragma warning disable CA1716
// The code that's violating the rule is on this line.
#pragma warning restore CA1716

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

[*.{cs,vb}]
dotnet_diagnostic.CA1716.severity = none

Mer information finns i Så här utelämnar du kodanalysvarningar.

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 dessa alternativ för just 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

Analyserade symboltyper

Du kan konfigurera de typer av symboler som ska analyseras av den här regeln. De tillåtna värdena är:

  • Namespace
  • NamedType
  • Method
  • Property
  • Event
  • Parameter

Avgränsa flera värden med kommatecken (,). Standardvärdet innehåller alla symboltyper i föregående lista.

dotnet_code_quality.CA1716.analyzed_symbol_kinds = Namespace, NamedType, Method, Property, Event