C#中CultureInfo.CreateSpecificCulture(String) 方法

2024-01-07 17:39:59

目录

一、CultureInfo 类?

二、CultureInfo.CreateSpecificCulture(String) 方法

1.定义

2.示例


一、CultureInfo 类?

????????提供有关特定区域性(对于非托管代码开发,则称为“区域设置”)的信息。 这些信息包括区域性的名称、书写系统、使用的日历、字符串的排序顺序以及对日期和数字的格式化设置。

命名空间:
System.Globalization
程序集:
System.Runtime.dll

public class CultureInfo : ICloneable, IFormatProvider

继承
Object
CultureInfo
实现
IFormatProvider  ICloneable

二、CultureInfo.CreateSpecificCulture(String) 方法

1.定义

?????????创建表示与指定名称关联的特定区域性的 CultureInfo。

public static System.Globalization.CultureInfo CreateSpecificCulture (string name);

参数
name
String
预定义的 CultureInfo 名称或现有 CultureInfo 的对象。 name 不区分大小写。

返回
CultureInfo
一个表示以下内容的 CultureInfo 对象:

如果 name 为空字符串(“”),则为固定区域性。
- 或 -
与 name 关联的特定区域性,如果 name 是非特定区域性。
- 或 -
由 name 指定的区域性,如果 name 已经是特定区域性。

例外
CultureNotFoundException
name 不是有效的区域性名称。
- 或 -
name 指定的区域性没有特定的区域性与之关联。

NullReferenceException
name 为 null。

2.示例

????????从 GetCultures 方法中检索表示非特定区域性的 对象的数组CultureInfo,并对数组进行排序。 当它循环访问数组中的元素时,它将每个非特定区域性的名称传递给 CreateSpecificCulture 方法,并显示该方法返回的特定区域性的名称。

// GetCultures 方法
using System.Globalization;
using System.Reflection;

namespace ConsoleApp31
{
    public class Example
    {
        public static void Main()
        {
            // Display the header.
            Console.WriteLine("{0,-53}{1}", "CULTURE", "SPECIFIC CULTURE");

            // Get each neutral culture in the .NET Framework.
            CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.NeutralCultures);
            // Sort the returned array by name.
            Array.Sort(cultures, new NamePropertyComparer<CultureInfo>());

            // Determine the specific culture associated with each neutral culture.
            foreach (var culture in cultures)
            {
                Console.Write("{0,-12} {1,-40}", culture.Name, culture.EnglishName);
                try
                {
                    Console.WriteLine("{0}", CultureInfo.CreateSpecificCulture(culture.Name).Name);
                }
                catch (ArgumentException)
                {
                    Console.WriteLine("(no associated specific culture)");
                }
            }
        }
    }

    public class NamePropertyComparer<T> : IComparer<T>
    {
        int IComparer<T>.Compare(T x, T y)
        {
            if (x == null)
                if (y == null)
                    return 0;
                else
                    return -1;

            PropertyInfo pX = x.GetType().GetProperty("Name")!;
            PropertyInfo pY = y.GetType().GetProperty("Name")!;
            return string.Compare((string)pX.GetValue(x, null), (string)pY.GetValue(y, null));
        }
    }
}
// 运行结果:
/*
 CULTURE                                              SPECIFIC CULTURE
             Invariant Language (Invariant Country)
aa           Afar                                     aa-ET
af           Afrikaans                                af-ZA
agq          Aghem                                    agq-CM
ak           Akan                                     ak-GH
am           Amharic                                  am-ET
ar           Arabic                                   ar-SA
arn          Mapuche                                  arn-CL
as           Assamese                                 as-IN
asa          Asu                                      asa-TZ
ast          Asturian                                 ast-ES
az           Azerbaijani                              az-Latn-AZ
az-Cyrl      Azerbaijani (Cyrillic)                   az-Cyrl-AZ
az-Latn      Azerbaijani (Latin)                      az-Latn-AZ
下面还有很多,此处省略
 */

文章来源:https://blog.csdn.net/wenchm/article/details/135433150
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。