2012-11-13 17 views
35

Bu sınıf veya tüm uygulama için varsayılan kültür bilgilerini ayarlamak istiyorum. ingilizce 3.2tüm C# uygulaması için varsayılan kültür bilgisinin nasıl ayarlanacağı

Türkiye'de 3,2 Örneğin

= yüzden uygulama benim yerel kullanır ama varsayılan olarak kullanmak istediğiniz

System.Globalization.CultureInfo.InvariantCulture 

ben bunun için varsayılan olarak bu şekilde ayarlayabilirsiniz nasıl belirli bir sınıf veya tüm uygulama

tüm uygulama ya da belirli bir sınıf için
+1

.ToString() 'nin değişmez olmayan sürümlerinin çok daha yavaş olduğunu ve "Thread.CurrentThread.CurrentCulture" ın bir fark yaratmadığını eklemeliyim. – gatopeich

+0

Olası çoğaltılabilir [Tüm uygulama için kültür ayarlamanın bir yolu var mı? Tüm güncel konuları ve yeni konuları?] (Http://stackoverflow.com/questions/468791/is-there-a-way-of-setting-culture-for-a-whole-application-all-current-threads-a –

cevap

31

için değil. Burada Is there a way of setting culture for a whole application? All current threads and new threads? tartışıldığı gibi

CurrentUICulture ve CurrentCulture parçacığı başına ayarlanabilmesidir. InvariantCulture'u hiç değiştiremezsiniz. Eğer/set kritik yöntemleri içinde kültürünü geri yükleyebilirsiniz sınıf için

CultureInfo ci = new CultureInfo(theCultureString); 
Thread.CurrentThread.CurrentCulture = ci; 
Thread.CurrentThread.CurrentUICulture = ci; 

, ancak kültürü almak çoğu biçimlendirme ilgili yöntemleri için uygun geçersiz kılmaları kullanmaya anlamlı güvenli olacağını:

Örnek kod geçerli iş parçacığı kültürleri değiştirmek argümanlardan biri olarak:

(3.3).ToString(new CultureInfo("fr-FR")) 
+0

Yani, üzerinde çalıştığım form penceresi için nasıl ayarlayabilirim. – MonsterMMORPG

+0

iş parçacığı tanımak, her geçiş için tanımlamakla gerçekten ilgilenmiyorum. Bu form iş parçacığı için ayarlamak mümkün değil. yeni bir pencere formu projesi oluştururken biliyor musun? – MonsterMMORPG

+0

@MonsterMMORPG, hangi/nerede iş parçacığı tanımayan? –

İlgili konular