当前位置:  开发笔记 > 后端 > 正文

.NET中CultureInfo的CurrentCulture和CurrentUICulture属性有什么区别?

如何解决《.NET中CultureInfo的CurrentCulture和CurrentUICulture属性有什么区别?》经验,为你挑选了5个好方法。

在.NET CultureInfo中,System.Globalization命名空间中有类.它有两个类似的属性,都返回CultureInfo类型的值:CurrentCultureCurrentUICulture.

他们之间有什么区别?

我何时以及为何使用哪一个?



1> Tomalak..:

CurrentCulture是系统的默认用户区域设置的.NET表示形式.这可以控制默认数字和日期格式等.

CurrentUICulture 是指默认用户界面语言,Windows 2000中引入的设置.这主要是关于应用程序的UI本地化/翻译部分.

无论系统配置的区域选项是什么,都将是.NET应用程序中的"当前"值.

通常它们都是相同的.但是在我的系统上他们会有所不同:我更喜欢我的德语格式的数字和日期,所以这CurrentCulture将是德语,但我也更喜欢我所有的英语应用程序,所以这CurrentUICulture将是英语.

关于这个主题有一篇很好的文章:对它进行排序:为什么我们同时拥有CurrentCulture和CurrentUICulture


实际上这可能是深入解释的一个很好的选择:http://forums.asp.net/post/1080435.aspx
那些是可怕的名字,因为CurrentUICulture真的意味着CurrentLanguageCulture和CurrentCulture真的意味着CurrentDataCulture.
@Pxtl:我选择*CurrentFormattingCulture*而不是*CurrentDataCulture*.不过,请注意,即使你的名字暗示,这些也可能不那么明显不相交.例如,我认为长日期格式("D")可以包含相当多的"语言":"en-US"返回"2018年4月6日星期五",而"ru-RU"返回"2018年6月20日" г.".

2> foxontherock..:

这是一个简单的技巧,我用它来记住使用哪一个:

(date, currency, double).tostring = CurrentCulture

resource.fr-CA.resx file = currentUICulture



3> Matas Vaitke..:

区别:

    CurrentCulture用于格式化日期和货币,同时 CurrentUICulture使用语言/翻译.它将用于ResourceManager按文化查找资源.

    的命名空间 CurrentCulture类是在System.Globalization同时, CurrentUICulture来自System.Threading.

    CurrentCulture在会话中持久化不同的请求,同时CurrentUICulture需要为每个请求设置.

神似:

它们都是System.Globalization.CultureInfo实例.



4> Ivaylo Slavo..:

除了用户所做的漂亮解释之外,还有一个很好的方法,以及Web应用程序开发的一个重要方面如下:

CurrentCulture表示Web服务器的设置.例如,如果您的ASP.NET Web应用程序托管在德国,则CutlureInfo.CurrentCulture很可能是值de-DE.因此,类型的默认.ToString()格式IFormattable将使用默认的德语格式,或者作为默认值在服务器操作系统上设置的格式.

CurrentUICulture可以从用户代理捕获,并且可以表示连接到网站的客户端的用户界面文化.例如,如果您加载来自俄罗斯的那个网站,你的本地设置被设置为使用俄语,和您的用户代理发送你的本地设置服务器(Opera和IE自动完成此操作,不知道对Chrome和Firefox)中,CurrenUICulture将代表ru-RU.这将导致任何资源(如通过ResourceManager检索的本地化字符串或ASP.NET aspx/ascx文件中的本地化表达式)使用俄语(如果可以使用翻译).



5> 小智..:

值得注意的是,CurrentUICulture支持非国家/地区特定区域设置,例如"en"(中性文化),而CurrentCulture仅支持国家/地区特定区域设置,例如"en-GB".设定CurrentCulture中立文化将会产生一种影响ArgumentException.

我认为这是因为日期和货币等格式与国家本身的联系更紧密,但所显示的语言在国家之间通常可以互换.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有