CLR 全面透彻解析:国际应用程序
2008-12-01 11:52:36 来源:WEB开发网非常有趣的是,同样的解释问题也出现在数字中。有些用户可能希望使用句点作为小数分隔符,而其他人却习惯于使用逗号。因此某个用户希望看到 1.23,而另一个可能希望看到 1,23。尤其是在处理负数时,情况会变得更为复杂。如果看一看 System.Globalization.NumberFormatInfo.NumberNegativePattern,您会注意到 Microsoft .NET Framework 对于负号的放置位置提供了 5 种模式。这只是针对一种符号。对于负的货币值,它在 NumberFormatInfo.CurrencyNegativePattern 中存储了 16 种不同的模式。
您可能已经猜到,在将数据存储为字符串时,始终应明确指出要遵循的格式,并且要在 ToString 和 Parse 方法中均采用该格式。请记住,如果没有上下文,有些字符串的含义可能会含混不清。当然,所有这些繁杂的格式化问题完全都出于显示目的;最好的方法是对存储的数据选择一种仅由机器读取的固定表示形式。Framework 通过 CultureInfo.InvariantCulture 提供了一种解决此问题的机制。
在如此众多的格式化选项中,如何才能知道应该选择哪一种呢?幸运的是,.NET Framework 提供了一种基础结构,可用于格式化要显示的数据。正如您所看到的,用户的个人喜好可以自动被遵循。但在用户未指定的情况下,Framework 该如何决定使用哪种方式呢?
让我们仔细看一下 System.Globalization 命名空间,这会帮助我们解答这个问题。System.Globalization 的内容被用于描述有关文化的信息。我们已经知道,它包含 15 种历法和 16 种格式化负货币值的方法。此外,它还有其他一些特定于文化的时间和数字属性,以及用于存储语言和区域相关信息的类。它还包含一种机制,可以组织和分组此信息以供使用。该机制是 CultureInfo 类,其中存储着有关文化的信息,包括数字格式化、日期格式化、历法、文化名称和书写系统的相关信息。
更多精彩
赞助商链接