Herkes Değişmez Kültürün kullanımını göstermek için bir örnek verebilir mi? Belgelerin ne anlattığını anlamıyorum.
Herkes Değişmez Kültürün kullanımını göstermek için bir örnek verebilir mi? Belgelerin ne anlattığını anlamıyorum.
Yanıtlar:
Değişmez kültür, değişmeyeceği için yararlı olan özel bir kültürdür. Mevcut kültür bir kullanıcıdan diğerine, hatta bir çalıştırmadan diğerine değişebilir, böylece aynı kaldığına güvenemezsiniz.
Her seferinde aynı kültürü kullanabilmek, çeşitli akışlarda çok önemlidir, örneğin serileştirme: bir kültürde 1,1, diğerinde 1,1 değerine sahip olabilirsiniz. İkinci kültürde "1,1" değerini ayrıştırmaya çalışırsanız, ayrıştırma başarısız olur. Bununla birlikte, bir sayıyı bir dizeye dönüştürmek ve daha sonra herhangi bir kültür kümesine sahip herhangi bir bilgisayardan geri ayrıştırmak için değişmez kültürü kullanabilirsiniz.
// Use some non-invariant culture.
CultureInfo nonInvariantCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = nonInvariantCulture;
decimal dec = 1.1m;
string convertedToString = dec.ToString();
// Simulate another culture being used,
// following code can run on another computer.
nonInvariantCulture.NumberFormat.NumberDecimalSeparator = ",";
decimal parsedDec;
try
{
// This fails because value cannot be parsed.
parsedDec = decimal.Parse(convertedToString);
}
catch (FormatException)
{
}
// However you always can use Invariant culture:
convertedToString = dec.ToString(CultureInfo.InvariantCulture);
// This will always work because you serialized with the same culture.
parsedDec = decimal.Parse(convertedToString, CultureInfo.InvariantCulture);
System.Globalization
isim alanında.
CultureInfo.InvariantCulture
Aynı kültürle serileştirdiğiniz için çalışırsanız .... o zaman kullanmakla aynı şey değil CultureInfo.CurrentCulture
mi?
CultureInfo.InvariantCulture
her zaman ondalık sayıya ayrışabileceğinizi bilirsiniz CultureInfo.InvariantCulture
. CultureInfo.CurrentCulture
Serileştirmek için kullanırsanız , kullanıcınızın mevcut kültürü olarak "en-US" olabilir. Ondalık sayıya geri ayrıştıran bir sonraki kullanıcı, ayırıcı için "," kullanan geçerli bir kültüre sahip olabilir.
Tanımlanmış davranışa sahip İngilizceye dayanan sahte bir kültür. Örneğin, kullanıcı tarafından tanımlanmış kültürden bağımsız olarak okunup yazılabilmesi için yapılandırma dosyalarına bir şeyler yazmak harika.
Temel olarak yapay ve değişmeyecek özel bir kültürdür .
Kültürden bağımsız olarak aynı olan şeyler için kullanılır (uygun olması için bazı X kültürüne çevrilmesi gerekmez)
örnek olarak - https://msdn.microsoft.com/en-us/library/4c5zdc6a(v=vs.100).aspx . Kullanıcının uğraşmaması gereken uygulamaya özel bir dosya yazdığınızda, bir kültür parametresini alan tüm yöntemler için InvariantCulture kullanmalısınız.
Yukarıda bağlantılı dokümanlara göre:
Bununla birlikte, bir uygulama değişmez kültürü yalnızca bir dosyada saklanan verileri biçimlendirme ve ayrıştırma gibi kültürden bağımsız sonuçlar gerektiren işlemler için kullanmalıdır.
Değişmez kültür kültüre duyarsızdır; İngilizce ile ilişkilidir, ancak herhangi bir ülke / bölge ile ilişkilendirilmez.
CultureInfo.InvariantCulture değişmez kültürün bir örneğini alır. Bir kültür gerektiren System.Globalization ad alanında hemen hemen her yöntemde kullanılabilir.
CompareInfo, DateTimeFormat ve NumberFormat gibi özellikler tarafından döndürülen nesneler, değişmez kültürün dize karşılaştırmasını ve biçimlendirme kurallarını da yansıtır. Görüntülemek istediğiniz zaman InvariantCulture özelliği kullanışlı geliyor verileri ısrar bir de kültür-bağımsız formatta.
Örneğin, bir sayıyı veya tarih saatini uygulamanın geçerli kültüründen bağımsız olarak belirli bir biçimde görüntülemek istiyorsanız, CultureInfo.InvariantCulture kullanabilirsiniz .
Bu, evrensel, basit, bölgeye özgü olmayan bir İngilizce dilidir ve diğer ilgili bilgilerdir. Programlama dilinin kendisi gibi. Evrensel bir takvim oluştururken ona güvenebilirsiniz; denetleyici adları, URL'ler, delege adları ... vb. oluşturmanız gerektiğinde. ve tüm kullanıcılar arasında doğal ve evrensel hareket edebilmek için gerekli şeylere ihtiyaç duyarlar.