CA1307: "StringComparison" zur Verdeutlichung angeben

Eigenschaft Wert
Regel-ID CA1307
Titel "StringComparison" zur Verdeutlichung angeben
Kategorie Globalisierung
Fix führt oder führt nicht zur Unterbrechung Nicht unterbrechend
Standardmäßig in .NET 8 aktiviert Nein

Ursache

Ein Zeichenfolgenvergleich verwendet eine Methodenüberladung, durch die kein StringComparison-Parameter festgelegt wird.

Regelbeschreibung

Viele Zeichenfolgenvergleiche stellen eine Überladung bereit, die einen StringComparison-Enumerationswert als Parameter akzeptiert.

Wenn eine Überladung vorhanden ist, die einen StringComparison-Parameter annimmt, sollte sie anstelle einer Überladung verwendet werden, die diesen Parameter nicht annimmt. Wenn Sie diesen Parameter explizit festlegen, wird Ihr Code häufig übersichtlicher und leichter zu verwalten. Weitere Informationen finden Sie unter Explizites angeben von Zeichenfolgenvergleichen.

Hinweis

Diese Regel berücksichtigt nicht den Standard-StringComparison-Wert, der von der Vergleichsmethode verwendet wird. Daher kann es für Methoden, die den Ordinal-Zeichenfolgenvergleich standardmäßig verwenden, und für den Benutzer, der diesen Standardvergleichsmodus verwenden soll, möglicherweise zu viele Laute haben. Wenn Sie nur Verstöße für bekannte Zeichenfolgenmethoden anzeigen möchten, bei denen standardmäßig kulturabhängige Zeichenfolgenvergleiche verwendet werden, verwenden Sie stattdessen CA1310: StringComparison zur Verdeutlichung angeben fest.

Behandeln von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, ändern Sie die Zeichenfolgenvergleichsmethoden zu Überladungen, die StringComparison-Enumeration als Parameter akzeptieren. Sie können z. B. str1.IndexOf(ch1) in str1.IndexOf(ch1, StringComparison.Ordinal) ändern.

Wann sollten Warnungen unterdrückt werden?

Es ist sicher, eine Warnung aus dieser Regel zu unterdrücken, wenn keine klare Absicht erforderlich ist. Beispielsweise ist es für Testcode oder nicht lokalisierbaren Code möglicherweise nicht erforderlich.

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 CA1307
// The code that's violating the rule is on this line.
#pragma warning restore CA1307

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.CA1307.severity = none

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

Weitere Informationen