CreateSpecificCulture('zh-cn')和new CultureInfo('zh-cn')的区别

最近在看.net资源的文章时发现以下两句代码:
Thread.CurrentThread.CurrentUICulture = new CultureInfo('zh-cn');
Thread.CurrentThread.CurrentCulture 
= CultureInfo.CreateSpecificCulture('zh-cn');

不是很了解,经过一翻百度,得出以下结果:

两者基本上是相同的,就算是静态的CultureInfo.CreateSpecificCulture方法,其内部也是调用CultureInfo构造函数。不同的是CultureInfo.CreateSpecificCulture在调用CultureInfo构造函数时,如果有错误发生,它会帮您做必要的处理。当它发现您的参数无法建立起来时,CreateSpecificCulture会检查是否有此参数开头的名称。如果有会帮您建立。所以CreateSpecificCulture也不是永远不会出错。

你可以尝试以下代码:

CultureInfo ci = CultureInfo.CreateSpecificCulture("zh-");  //ok不出错
CultureInfo ci = CultureInfo.CreateSpecificCulture("zh-cn");  //ok不出错

CultureInfo ci = CultureInfo.CreateSpecificCulture("z-cn"); //出错

所以CreateSpecificCulture只是会帮你做额外的检查而已。

posted @ 2007-01-09 15:01  Allen Zhang  阅读(2851)  评论(2编辑  收藏  举报