gpt4 book ai didi

c# - 何时应指定 CurrentCulture 或 InvariantCulture 以及何时应不指定?

转载 作者:IT王子 更新时间:2023-10-29 04:43:43 28 4
gpt4 key购买 nike

指定 CurrentCulture 或 InvariantCulture 而根本不指定文化的最佳做法是什么?

根据我的阅读,如果您正在进行序列化,例如,您需要 InvariantCulture 作为指定数据值的规范表示的方法。这是基于区域性的字符串操作的相对较小百分比。

每次我都发现它很长、冗长且难看,比如:

var greeting = string.Format(CultureInfo.CurrentCulture, "Hello ", userName); 

但是,我的团队最近启用了 FxCop,现在有一种插入始终在任何地方使用 CultureInfo 的趋势。结合简洁性、可读性和功能性的最佳技术是什么?

一些不错的阅读 Material :

最佳答案

这里有一个内在的权衡。

至少,您需要指定 CultureInfo 以在您在程序内部执行任何操作时使用 InvariantCulture。例如,将其与序列化一起使用会强制数据表示始终相同,因此您不必担心内部数据格式的国际化问题。

话虽如此,在任何地方指定它都有一些优势 - 主要是在强制您确保正确处理它方面。内部程序工作与 UI 工作需要指定不同的文化(前提是您希望正确本地化您的应用程序)。因此,一个复杂的程序往往需要在任何地方指定它,因为保留“默认值”充其量是危险的,并且随着时间的推移往往会引入错误。

但是,正如您所注意到的那样,指定这一点往往会增加代码的大小,并可能降低可读性。这导致了权衡 - 通过更短的代码实现可读性和可维护性与通过在任何地方都更加明确来实现适当的国际化和本地化以及可维护性。

在我看来,这里没有“正确”答案——这实际上取决于您的应用。如果您的应用程序完全与演示有关,并且没有进行大量数据操作,尤其是没有任何类型的 self 管理文件存储,则设置一次当前文化(和 ui 文化)可能没问题。我发现更复杂的应用程序往往不能以这种方式工作,但是,在这种情况下,在任何地方指定它的 FxCop 建议似乎更有吸引力。

关于c# - 何时应指定 CurrentCulture 或 InvariantCulture 以及何时应不指定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3231386/

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