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