Freigeben über


CA1716: Bezeichner sollten nicht mit Schlüsselwörtern übereinstimmen.

Eigenschaft Wert
Regel-ID CA1716
Titel Bezeichner sollten nicht mit Schlüsselwörtern übereinstimmen.
Kategorie Benennung
Fix führt oder führt nicht zur Unterbrechung Breaking
Standardmäßig in .NET 9 aktiviert No

Ursache

Der Name eines Namespace, eines Typs oder eines virtuellen oder Schnittstellenmembers entspricht einem reservierten Schlüsselwort in einer Programmiersprache.

Standardmäßig betrachtet diese Regel nur extern sichtbare Namespaces, Typen und Member, aber Sie können Sichtbarkeit und Symboltypen konfigurieren.

Regelbeschreibung

Bezeichner für Namespaces, Typen und virtuelle und Schnittstellenmember dürfen nicht mit Schlüsselwörtern übereinstimmen, die in Programmiersprachen für die Common Language Runtime definiert sind. Abhängig von der verwendeten Sprache und dem Schlüsselwort können Compilerfehler und Mehrdeutigkeiten die Verwendung der Bibliothek erschweren.

Diese Regel überprüft Schlüsselwörter in den folgenden Sprachen:

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

Der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung wird für Visual Basic Schlüsselwörter verwendet. Für die anderen Sprachen wird die Groß-/Kleinschreibung verwendet.

Behandeln von Verstößen

Wählen Sie einen Namen aus, der nicht in der Liste der Schlüsselwörter angezeigt wird.

Wann sollten Warnungen unterdrückt werden?

Sie können eine Warnung aus dieser Regel unterdrücken, wenn Sie davon überzeugt sind, dass der Bezeichner die Benutzer der API nicht verwechselt und die Bibliothek in allen verfügbaren Sprachen in .NET verwendbar ist.

Unterdrücken einer Warnung

Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.

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

Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der none auf fest.

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

Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.

Konfigurieren des zu analysierenden Codes

Mit den folgenden Optionen können Sie konfigurieren, für welche Teile Ihrer Codebasis diese Regel ausgeführt werden soll.

Sie können diese Optionen nur für diese Regel, für alle Regeln, für die sie gelten, oder für alle Regeln in dieser Kategorie (Benennung), für die sie gelten, konfigurieren. Weitere Informationen finden Sie unter Konfigurationsoptionen für die Codequalitätsregel.

Einschließen bestimmter API-Oberflächen

Mit der Option api_surface können Sie festlegen, für welche Elemente Ihrer Codebasis diese Regel ausgeführt werden soll, und zwar auf der Grundlage ihrer Zugreifbarkeit. Sie können beispielsweise festlegen, dass die Regel nur für die nicht öffentliche API-Oberfläche ausgeführt werden soll, indem Sie einer EDITORCONFIG-Datei in Ihrem Projekt das folgende Schlüssel-Wert-Paar hinzufügen:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Hinweis

Ersetzen Sie das XXXX-Element von CAXXXX durch die ID der entsprechenden Regel.

Analysierte Symboltypen

Sie können die Symboltypen konfigurieren, die von dieser Regel analysiert werden. Zulässige Werte sind:

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

Trennen Sie mehrere Werte durch ein Komma (,). Der Standardwert enthält alle Symboltypen in der vorherigen Liste.

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