Sdílet prostřednictvím


Ordinal-StringComparison verwenden

Aktualisiert: November 2007

TypeName

UseOrdinalStringComparison

CheckId

CA1309

Kategorie

Microsoft.Globalization

Unterbrechende Änderung

Nicht unterbrechend

Ursache

Durch einen nicht linguistischen Zeichenfolgenvergleich wird der StringComparison-Parameter weder auf Ordinal noch auf OrdinalIgnoreCase festgelegt.

Regelbeschreibung

Viele Zeichenfolgenoperationen, vor allem die Compare()-Methode und die Equals()-Methode, bieten jetzt eine Überladung, durch die ein StringComparision-Enumerationswert als Parameter akzeptiert wird.

Wenn Sie StringComparison.Ordinal oder StringComparison.OrdinalIgnoreCase festlegen, ist der Zeichenfolgenvergleich nicht linguistisch. Die für die natürliche Sprache spezifischen Features werden also ignoriert, wenn Vergleichsentscheidungen getroffen werden. Die Entscheidungen basieren folglich auf einfachen Bytevergleichen, wobei Groß-/Kleinschreibung oder nach Kultur parametrisierte Entsprechungstabellen ignoriert werden. Wenn der Parameter explizit auf StringComparison.Ordinal oder StringComparison.OrdinalIgnoreCase festgelegt wird, werden die Codeausführung beschleunigt sowie Richtigkeit und Zuverlässigkeit gesteigert.

Behandlung von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, ändern Sie die Zeichenfolgenvergleichsmethode in eine Überladung, die die StringComparison-Enumeration als Parameter akzeptiert, und geben entweder Ordinal oder OrdinalIgnoreCase an. Beispiel: Ändern Sie String.Compare(str1, str2) in String.Compare(str1, str2, StringComparison.Ordinal).

Wann sollten Warnungen unterdrückt werden?

Eine Warnung dieser Regel kann gefahrlos unterdrückt werden, wenn die Bibliothek oder Anwendung für eine begrenzte lokale Zielgruppe bestimmt ist bzw. die Semantik der aktuellen Kultur verwendet werden sollte.

Siehe auch

Referenz

StringComparison angeben

Weitere Ressourcen

Globalisierungswarnungen