Kültüre duyarsız büyük/küçük harf değişiklikleri gerçekleştirme

String.ToUpper, String.ToLower, Char.ToUpperve Char.ToLower yöntemleri, parametre kabul etmeyen aşırı yüklemeler sağlar. Varsayılan olarak, parametresiz bu aşırı yüklemeler değerini CultureInfo.CurrentCulturetemel alan büyük/küçük harf değişiklikleri gerçekleştirir. Bu, kültüre göre farklılık gösterebilen büyük/küçük harfe duyarlı sonuçlar üretir. Büyük/küçük harf değişikliklerinin kültüre duyarlı mı yoksa kültüre duyarsız mı olmasını istediğinizi açıkça belirtmek için, bu yöntemlerin aşırı yüklemelerini kullanarak açıkça bir culture parametre belirtmeniz gerekir. Kültüre duyarlı büyük/küçük harf değişiklikleri için parametresini culture belirtinCultureInfo.CurrentCulture. Kültüre duyarsız büyük/küçük harf değişiklikleri için parametresini culture belirtinCultureInfo.InvariantCulture.

Dizeler genellikle daha sonra daha kolay arama yapmak için standart bir büyük/küçük harfe dönüştürülür. Dizeler bu şekilde kullanıldığında parametresini culture belirtmeniz CultureInfo.InvariantCulture gerekir, çünkü değeri Thread.CurrentCulture büyük/küçük harf değişikliğiyle aramanın gerçekleştiği saat arasında değişebilir.

Bir güvenlik kararı büyük/küçük harf değişikliği işlemini temel alırsa, sonucun değerinden CultureInfo.CurrentCultureetkilenmediğinden emin olmak için işlemin kültüre duyarsız olması gerekir. Kültüre duyarlı dize işlemlerinin tutarsız sonuçları nasıl oluşturabileceğini gösteren bir örnek için, Dizeleri Kullanmak için En İyi Yöntemler makalesinin "Geçerli Kültürü Kullanan Dize Karşılaştırmaları" bölümüne bakın.

String.ToUpper ve String.ToLower

Kod netliği için, her zaman bir kültürü açıkça belirtmenize String.ToUpper olanak sağlayan ve String.ToLower yöntemlerinin aşırı yüklemelerini kullanmanız önerilir. Örneğin, aşağıdaki kod bir tanımlayıcı araması gerçekleştirir. İşlem key.ToLower varsayılan olarak kültüre duyarlıdır, ancak bu davranış kodun okunmasından net değildir.

Örnek

Shared Function LookupKey(key As String) As Object
   Return internalHashtable(key.ToLower())
End Function
static object LookupKey(string key)
{
    return internalHashtable[key.ToLower()];
}

İşlemin key.ToLower kültüre duyarsız olmasını istiyorsanız, büyük/küçük harf değiştirirken açıkça kullanmak CultureInfo.InvariantCulture üzere yukarıdaki örneği aşağıdaki gibi değiştirin.

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 ve Char.ToLower

ve Char.ToLower yöntemleri ve String.ToLower yöntemleri ile aynı özelliklere String.ToUpper sahip olsa Char.ToUpper da, etkilenen tek kültürler Türkçe (Türkiye) ve Azerbaycan dilidir (Latin, Azerbaycan). Bunlar tek karakterli büyük/küçük harf farkları olan tek iki kültür. Bu benzersiz olay eşlemesi hakkında daha fazla ayrıntı için sınıf belgelerindeki String "Büyük/Küçük Harf" bölümüne bakın. Kod netliği sağlamak ve tutarlı sonuçlar elde etmek için her zaman parametre CultureInfo kabul eden bu yöntemlerin aşırı yüklemelerini kullanmanız önerilir.

Ayrıca bkz.