gpt4 book ai didi

c# - FxCop CA1305 : CurrentCulture vs. CurrentUICulture

转载 作者:行者123 更新时间:2023-11-30 13:15:32 25 4
gpt4 key购买 nike

所以,我有一些本地化的资源文件。它们是可以格式化的字符串。

例如:

MyResource.resx
Title: "MyApp - Ver: {0}"

然后我这样返回它:

public String Title
{
get { return String.Format(CultureInfo.CurrentUICulture, MyResources.Title, 1); }
}

我了解 CurrentUICulture 和 CurrentCulture 之间的区别,但 FxCop 告诉我改用 CurrentCulture?

最佳答案

在某种程度上 FxCop 是正确的:在这种情况下您不应该使用 CurrentUICulture。正如其他人所说,CurrentCulture 用于区域设置感知格式,而 CurrentUICulture 用于从资源中读取可翻译字符串。
您在这里所做的是格式化数字,因此 FxCop 提示您使用了不正确的 CultureInfo。不幸的是,FxCop 没有告诉您的是,您实际上应该使用 CultureInfo.InvariantCulture。为什么?因为版本号是不依赖于 Locale 的东西。你总是会看到类似 1.9 而不是 1,9 的东西。因此 InvariantCulture 是必经之路。
微软甚至提供了特定的类来存储版本信息 - 奇怪的是它的名字是 Version (AFAIR 它在 System 命名空间中)。当您执行 ToString() 时,这将始终向您显示版本号,就像我之前提到的那样。当您实例化它时,它的构造函数还需要语言环境不变的版本字符串。

关于c# - FxCop CA1305 : CurrentCulture vs. CurrentUICulture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6795891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com