当前位置: 首页 > 编程语言 > C#

CultureInfo.CurrentCulture在String.Format()中真的有必要吗?分享

时间:2023-04-10 19:47:16 C#

CultureInfo.CurrentCulture在String.Format()中真的有必要吗?您如何看待在方法String.Format(string,object)中提供IFormatProvider的真正必要性?编写完整的变体String.Format(CultureInfo.CurrentCulture,"Stringis{0}",str)会更好吗?或者只是String.Format("Stringis{0}",str);?如果要生成的字符串以独立于当前用户区域性的方式(例如,在注册表或文件中)持久保存,则通常需要InvariantCulture。您将希望将CurrentCulture用于要在UI中呈现给当前用户的字符串(表单、报告)。如果您使用当前使用InvariantCulture的CurrentCulture,您会遇到细微的错误:只有当您有多个不同文化的用户访问相同的注册表项或文件,或者如果用户更改了他们的默认文化时,这些错误才会出现。显式指定CurrentCulture(如果省略IFormatProvider参数,则为默认设置)本质上是您已考虑上述内容并且生成的字符串应使用当前用户的区域性的文档。这就是FxCop建议您指定IFormatProvider参数的原因。如果未指定IFormatProvider(或等效地传递null),大多数参数类型最终将根据CultureInfo.CurrentCulture进行格式化。有趣的是,您可以指定一个自定义的IFormatProvider,它在格式化参数时首先破解,或者根据其他上下文覆盖格式化文化。请注意,CultureInfo.CurrentCulture影响参数格式,而不是资源选择;资源选择由CultureInfo.CurrentUICulture控制。不,您不需要指定文化,除非您的字符串包含特定于文化的元素,例如小数点分隔符、货币等,这些元素必须根据文化呈现。如果您关心应用程序中的本地化(全球化),它会特别有用。也就是说,如果您希望您的应用程序支持多种语言和特定于文化的格式,您应该使用它。以上就是C#学习教程:CultureInfo.CurrentCulture在String.Format()中真的有必要吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: