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.CurrentCulture
etkilenmediğ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.