Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Methoden String.ToUpper, String.ToLower, Char.ToUpper und Char.ToLower bieten Überladungen, die keine Parameter akzeptieren. Standardmäßig führen diese Überladungen ohne Parameter Falländerungen basierend auf dem Wert des CultureInfo.CurrentCulture. Dies führt zu Ergebnissen, bei denen die Groß-/Kleinschreibung beachtet wird und die je nach Kultur variieren können. Um klar zu machen, ob Änderungen der Groß- und Kleinschreibung kulturempfindlich oder kulturunempfindlich sein sollen, sollten Sie die Überladungen der Methoden verwenden, für die Sie explizit einen culture Parameter angeben müssen. Geben Sie für kulturspezifische Groß-/Kleinschreibungsänderungen den Parameter CultureInfo.CurrentCulture für culture an. Geben Sie für kulturunabhängige Groß-/Kleinschreibungsänderungen den Parameter CultureInfo.InvariantCulture an culture.
Häufig werden Zeichenfolgen in einen Standardfall konvertiert, um später eine einfachere Suche zu ermöglichen. Wenn Zeichenfolgen auf diese Weise verwendet werden, sollten Sie CultureInfo.InvariantCulture für den Parameter culture angeben, da sich der Wert von Thread.CurrentCulture möglicherweise zwischen dem Zeitpunkt, zu dem der Fall geändert wird, und dem Zeitpunkt, zu dem die Suche erfolgt, ändern kann.
Wenn eine Sicherheitsentscheidung auf einem Falländerungsvorgang basiert, sollte der Vorgang kulturunempfindlich sein, um sicherzustellen, dass das Ergebnis nicht vom Wert betroffen CultureInfo.CurrentCultureist. Im Abschnitt "Zeichenfolgenvergleiche, die die aktuelle Kultur verwenden" des Artikels "Bewährte Methoden für die Verwendung von Zeichenfolgen " finden Sie ein Beispiel, in dem veranschaulicht wird, wie kultursensitive Zeichenfolgenvorgänge zu inkonsistenten Ergebnissen führen können.
String.ToUpper und String.ToLower
Aus Gründen der Codeklarheit wird empfohlen, dass Sie immer Überladungen der String.ToUpper und String.ToLower Methoden verwenden, mit denen Sie eine Kultur explizit angeben können. Der folgende Code führt z. B. eine Bezeichnersuche aus. Der key.ToLower Vorgang ist standardmäßig kultursensitiv, dieses Verhalten ist jedoch nicht klar vom Lesen des Codes.
Beispiel
Shared Function LookupKey(key As String) As Object
Return internalHashtable(key.ToLower())
End Function
static object LookupKey(string key)
{
return internalHashtable[key.ToLower()];
}
Wenn der key.ToLower Vorgang kulturunabhängig sein soll, ändern Sie das vorangehende Beispiel wie folgt, um beim Ändern der Groß-/Kleinschreibung CultureInfo.InvariantCulture explizit zu verwenden.
Shared Function LookupKey(key As String) As Object
Return internalHashtable(key.ToLower(CultureInfo.InvariantCulture))
End Function
static object LookupKey(string key)
{
return internalHashtable[key.ToLower(CultureInfo.InvariantCulture)];
}
Char.ToUpper und Char.ToLower
Obwohl die Char.ToUpper Und Char.ToLower Methoden dieselben Merkmale wie die String.ToUpper und String.ToLower Methoden haben, sind die einzigen Kulturen, die betroffen sind, türkisch (Türkiya) und Aserbaidschanisch (Lateinisch, Aserbaidschan). Dies sind die einzigen beiden Kulturen mit Unterschieden in der Groß- und Kleinschreibung einzelner Zeichen. Weitere Informationen zu dieser einzigartigen Fallzuordnung finden Sie im Abschnitt "Schreibweise" in der String Klassendokumentation. Zur Klarheit des Codes und um konsistente Ergebnisse sicherzustellen, wird empfohlen, immer die Überladungen dieser Methoden zu verwenden, die einen CultureInfo-Parameter akzeptieren.