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 8 aktiviert Nein

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 Konfigurationsdatei auf none 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 zutreffenden Regeln oder für alle zutreffenden Regeln in dieser Kategorie (Benennung) konfigurieren. Weitere Informationen finden Sie unter Konfigurationsoptionen für die Codequalitätsregel.

Einschließen bestimmter API-Oberflächen

Sie können je nach Zugänglichkeit festlegen, für welche Bestandteile Ihrer Codebasis diese Regel ausgeführt wird. 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

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