【问题标题】:How to get the culture of an IFormatProvider如何获得 IFormatProvider 的文化
【发布时间】:2012-09-18 14:23:41
【问题描述】:

我正在使用指定给我的文化将字符串转换为值,例如IFormatProvider

我想弄清楚他们给了我哪种文化。

我意识到IFormatProvider 不一定必须对应于System.Globalization.Culture,但确实如此。

那么我怎样才能得到它的名字呢?

【问题讨论】:

    标签: c# globalization


    【解决方案1】:

    CultureInfo 类实现了IFormatProvider,因此您可以尝试强制转换:

    IFormatProvider provider = ...
    CultureInfo ci = provider as CultureInfo;
    if (ci != null)
    {
        string name = ci.DisplayName;
        ...
    }
    

    【讨论】:

    • 我花了大约 20 分钟的咒骂和咒骂来弄清楚为什么 ci.Name 返回一个空字符串。这是因为在文化中使用 ci.Name 一个空字符串。将答案更改为使用 DisplayName。但是很棒!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 2016-08-31
    • 2012-08-14
    相关资源
    最近更新 更多