【发布时间】:2012-09-18 14:23:41
【问题描述】:
我正在使用指定给我的文化将字符串转换为值,例如IFormatProvider。
我想弄清楚他们给了我哪种文化。
我意识到IFormatProvider 不一定必须对应于System.Globalization.Culture,但确实如此。
那么我怎样才能得到它的名字呢?
【问题讨论】:
标签: c# globalization
我正在使用指定给我的文化将字符串转换为值,例如IFormatProvider。
我想弄清楚他们给了我哪种文化。
我意识到IFormatProvider 不一定必须对应于System.Globalization.Culture,但确实如此。
那么我怎样才能得到它的名字呢?
【问题讨论】:
标签: c# globalization
CultureInfo 类实现了IFormatProvider,因此您可以尝试强制转换:
IFormatProvider provider = ...
CultureInfo ci = provider as CultureInfo;
if (ci != null)
{
string name = ci.DisplayName;
...
}
【讨论】:
ci.Name 返回一个空字符串。这是因为在文化中使用 ci.Name 是 一个空字符串。将答案更改为使用 DisplayName。但是很棒!