2013-04-04 18 views
11

Ich glaube, ich verstehe die CultureInfo Verwendung.ToString() Standard CultureInfo

Wenn ich einfach:

const int a = 5; 
string b = a.ToString(); 

ist es gleich:

const int a = 5; 
string b = a.ToString(CultureInfo.InvariantCulture); 

Mit anderen Worten, tut ToString() standardmäßig Verwendung InvariantCulture oder Current oder keines von beiden?

Antwort

18

ToString wird CurrentCulture, nicht InvariantCulture verwenden, wenn Sie keine Kultur angeben.

2

Die ToString Umsetzung aller integrierten Klassen und numerischen Typen verwendet standardmäßig die CultureInfo.CurrentCulture culture, die Kultur durch den aktuellen Thread verwendet.

Dies bedeutet, dass die aktuelle Kultur (und damit Ihre Funktionen zum Formatieren und Analysieren von Strings) von System zu System unterschiedlich sind. Meiner Meinung nach ist das ein Konstruktionsfehler und hat Menschen in der Vergangenheit gebissen. Es sollte standardmäßig auf InvariantCulture und geben Sie die gleichen Ergebnisse über Systeme, aber leider nicht.

Verwandte Themen