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.