Int32.() Olabilirdi kültür özel?
ReSharper beta sürümünü kullanıyorum ve aşağıdaki kodu için bana uyarı veriyor:
int id;
// ...
DoSomethingWith(id.ToString());
Uyarı id.ToString()
önce aradı, ve bana diyor ki "dize dönüştürme kültür açıkça Belirtin". Uyarı anlıyorum, ve çok daha hantal id.ToString(CultureInfo.InvariantCulture)
kodu değiştir -- sadece nasıl düzelteceğimi biliyorum.
Ama benim sorum: gerekli mi? Yani, belli ki bir başka önemli nokta da belirtmek kültürü ne zaman kullanıyorsun türleri gibi DateTime
(farklı kültürlere sahip farklı tarih biçimleri) ve Double
(farklı karakterler kullanılan ondalık noktası). Ama en azından TR ve değişmeyen kültürleri içinde Int32.ToString()
, herhangi bir biçimlendirme hiç mantıklı değil. Hayır virgül, ondalık sayılar, dolar işareti, hiçbir şey yok. Kültüre göre değişir ne olurdu?
Bazı kültürlerde bu var aslındaekleyinbu parametresiz Int32.ToString()
çağırdığınızda biçimlendirme mi? Ya bu ReSharper beta, ve bu uyarı gerçekten uygulanabilir 10 ** için değil bir hata bu durumda ReSharper hata rapor edeceğim (?)
CEVAP
İşletim Sistemini değiştirmek için izin verirnegatif işaretisayılar için.
Control panel ->
Language and regional settings ->
Additional settings ->
Negative sign
Bu yüzden, mevcut kültür negatif işareti geçersiz olabilir. Bölgesel ayarlar saygı duymalısın bu durumda, bu uyarı sebebidir. Ayrıca negatif işareti programlama yoluyla değiştirebilirsiniz:
CultureInfo culture = Thread.CurrentThread.CurrentCulture;
// Make a writable clone
culture = (CultureInfo) culture.Clone();
culture.NumberFormat.NegativeSign = "!";
Özel durum.Mesaj vs Hariç.()Olabilirdi...
O'imkansız __dan özel durum s ned...
Reset veya özel sürüm kullanmaya Gah i...
'kamu, varsayılan olarak korumalı...
Nasıl özel yöntemleri, alanları veya i...