Int32.() Olabilirdi kültür özel? | Netgez.com
SORU
13 Aralık 2011, Salı


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
13 Aralık 2011, Salı


İş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 = "!";

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • adrianisen

    adrianisen

    25 Kasım 2009
  • Willie D.

    Willie D.

    16 Aralık 2006