目录
二、CultureInfo.CreateSpecificCulture(String) 方法
????????提供有关特定区域性(对于非托管代码开发,则称为“区域设置”)的信息。 这些信息包括区域性的名称、书写系统、使用的日历、字符串的排序顺序以及对日期和数字的格式化设置。
命名空间:
System.Globalization
程序集:
System.Runtime.dll
public class CultureInfo : ICloneable, IFormatProvider
继承
Object
CultureInfo
实现
IFormatProvider ICloneable
?????????创建表示与指定名称关联的特定区域性的 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。
????????从 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
下面还有很多,此处省略
*/