CLR 全面透彻解析:国际应用程序
2008-12-01 11:52:36 来源:WEB开发网假设您想检查一下 URI(统一资源标识符)是否以字符串 "FILE:" 开头。您希望在检查时区分大小写以确保 "file:" 等词语不会通过过滤器的过滤。如果使用 en-US 文化对 "file:" 与 "FILE:" 进行比较并忽略大小写,则它们将会是相等的。但如果使用 tr-TR 文化,则它们是不等的。String.Compare 默认使用 CurrentCulture。
因此对于这些情况,您应使用 StringComparison.OrdinalIgnoreCase。如果只是想测试是否相等,则更好的选择是使用 String.Equals,默认情况下它按序数进行比较。图 3 给出了字母 I 在执行 ToUpper 和 ToLower 操作后所得到的结果。有关比较字符串的详细信息,请参阅“在 Microsoft .NET 2.0 中使用字符串的新建议”。
图 3 ToUpper 和 ToLower 的结果
Silverlight 全球化
全球化对 Silverlight 应用程序尤为重要。使用桌面应用程序时,您可以确切知道您的目标受众都包括哪些人。但是对于 Web 上的 Silverlight 应用程序,任何人都可能看到它。Silverlight 有许多与桌面 Framework 相同的全球化基础结构,但是它的大部分数据都从底层操作系统获取。这有助于使 Silverlight 应用程序在 Windows 中运行时,看上去更像是基于 Windows 的应用程序,而当 Silverlight 应用程序在 Mac 操作系统中运行时,看上去更像是 Mac 操作系统的应用程序。
桌面 CLR 与 Silverlight (CoreCLR) 之间的许多差异都基于下载速度和难易度等实际情况,Silverlight 需要更小的运行时。同样,Silverlight 的许多信息都从底层操作系统获取,而并非在 CoreCLR 中时始终附带着它们。例如,CoreCLR 并不存储排序表,因此它只能访问操作系统中已有的排序表。此外,Silverlight 只使用 Unicode,它并没有旧的代码页。它还会从操作系统中获取文化信息。这意味着您的确需要做好不得不处理各种数据的准备。
更多精彩
赞助商链接