Поделиться через


CultureInfo Конструкторы

Определение

Инициализирует новый экземпляр класса CultureInfo.

Перегрузки

CultureInfo(Int32)

Инициализирует новый экземпляр класса CultureInfo на основе языка и региональных параметров, заданных идентификатором.

CultureInfo(String)

Инициализирует новый экземпляр класса CultureInfo на основе языка и региональных параметров, заданных именем.

CultureInfo(Int32, Boolean)

Инициализирует новый экземпляр CultureInfo класса на основе языка и региональных параметров, заданных идентификатором языка и региональных параметров, и значения, указывающего, следует ли использовать выбранные пользователем параметры языка и региональных параметров из Windows.

CultureInfo(String, Boolean)

Инициализирует новый экземпляр CultureInfo класса на основе языка и региональных параметров, заданных именем, и значения, указывающего, следует ли использовать выбранные пользователем параметры языка и региональных параметров из Windows.

CultureInfo(Int32)

Исходный код:
CultureInfo.cs
Исходный код:
CultureInfo.cs
Исходный код:
CultureInfo.cs

Инициализирует новый экземпляр класса CultureInfo на основе языка и региональных параметров, заданных идентификатором.

public:
 CultureInfo(int culture);
public CultureInfo (int culture);
new System.Globalization.CultureInfo : int -> System.Globalization.CultureInfo
Public Sub New (culture As Integer)

Параметры

culture
Int32

Предварительно определенный идентификатор CultureInfo, свойство LCID существующего объекта CultureInfo или идентификатор языка и региональных параметров, свойственных только Windows.

Исключения

Значение параметра culture меньше нуля.

culture не является допустимым идентификатором языка и региональных параметров. Дополнительные сведения см. в разделе "Примечания для вызывающей стороны".

Комментарии

Предопределенные идентификаторы языка и региональных параметров, доступных в системе Windows, перечислены в столбце Языковой тег в списке имен языков или регионов, поддерживаемых Windows. Теги языков указаны в соответствии со стандартом BCP 47.

В большинстве случаев culture параметр сопоставляется с соответствующим идентификатором языкового стандарта NLS. Значение culture параметра становится значением LCID свойства нового CultureInfoобъекта .

Рекомендуется вызывать конструктор CultureInfo.CultureInfoимени языкового стандарта , так как имена языкового стандарта предпочтительнее, чем LCID. Для пользовательских языковых стандартов требуется имя языкового стандарта.

Пользователь может переопределить некоторые значения, связанные с текущим языком и региональными параметрами Windows, с помощью региональных и языковых параметров панели управления. Например, пользователь может отобразить дату в другом формате или использовать валюту, отличную от используемой по умолчанию для языка и региональных параметров. Если указанный идентификатор языка и региональных параметров совпадает с идентификатором текущего языка и региональных параметров Windows, этот конструктор создает CultureInfo , использующий эти переопределения, включая пользовательские параметры для свойств экземпляра, возвращаемого DateTimeFormatInfo свойством DateTimeFormat , и свойства экземпляра NumberFormatInfo , возвращаемого свойством NumberFormat . Если параметры пользователя несовместимы с языком и региональными параметрами, связанными с CultureInfo (например, если выбранный календарь не является одним из OptionalCalendars), результаты методов и значения свойств не определены.

Если указанный идентификатор языка и региональных параметров не соответствует идентификатору текущего языка и региональных параметров Windows, этот конструктор создает CultureInfo , использующий значения по умолчанию для указанного языка и региональных параметров.

Свойство UseUserOverride всегда имеет значение true.

Например, предположим, что арабский (Саудовская Аравия) — это текущий язык и региональные параметры Windows, а пользователь изменил календарь с хиджра на григорианский.

  • С CultureInfo("0x0401") (имя языка и региональных параметров ar-SA) Calendar имеет значение GregorianCalendar (который является пользовательским параметром), а UseUserOverride для — значение true.

  • С CultureInfo("0x041E") (имя языка и региональных параметров th-TH), Calendar имеет значение ThaiBuddhistCalendar (который является календарем по умолчанию для th-TH) и UseUserOverride имеет значение true.

Для языков и региональных параметров, использующих евро, .NET Framework и Windows XP устанавливают валюту по умолчанию в виде евро. Однако в более старых версиях Windows это не так. Таким образом, если пользователь более старой версии Windows не изменил параметр валюты с помощью региональных и языковых параметров панели управления, возможно, валюта будет неправильной. Чтобы использовать параметр .NET Framework по умолчанию для валюты, приложение должно использовать перегрузку CultureInfo конструктора useUserOverride , которая принимает параметр и присваивает ему значение false.

Примечание

Для обратной совместимости язык и региональные параметры, созданные culture с помощью параметра 0x0004 или 0x7c04, будут иметь Name свойство zh-CHS или zh-CHTсоответственно. Вместо этого следует предпочесть создавать язык и региональные параметры с использованием текущих стандартных zh-Hans имен языка и региональных параметров или zh-Hant, если нет причин для использования более старых имен.

Примечания для тех, кто вызывает этот метод

В .NET Framework 3.5 и более ранних версиях создается исключение , ArgumentException если culture не является допустимым идентификатором языка и региональных параметров. Начиная с .NET Framework 4, этот конструктор создает CultureNotFoundExceptionисключение . Начиная с приложений, работающих под управлением .NET Framework 4 или более поздней версии в Windows 7 или более поздней версии, метод пытается получить CultureInfo объект, идентификатор которого находится culture в операционной системе. Если операционная система не поддерживает этот язык и региональные параметры, метод создает CultureNotFoundException исключение.

В .NET 6 и более поздних версиях возникает исключение , если приложение выполняется в среде, CultureNotFoundException где включен инвариантный режим глобализации, например, некоторые контейнеры Docker и указан язык и региональные параметры, отличные от инвариантного языка и региональных параметров.

См. также раздел

Применяется к

CultureInfo(String)

Исходный код:
CultureInfo.cs
Исходный код:
CultureInfo.cs
Исходный код:
CultureInfo.cs

Инициализирует новый экземпляр класса CultureInfo на основе языка и региональных параметров, заданных именем.

public:
 CultureInfo(System::String ^ name);
public CultureInfo (string name);
new System.Globalization.CultureInfo : string -> System.Globalization.CultureInfo
Public Sub New (name As String)

Параметры

name
String

Предварительно определенное имя CultureInfo, свойство Name существующего объекта CultureInfo или имя языка и региональных параметров, свойственных только Windows. name не учитывает регистр.

Исключения

Параметр name имеет значение null.

name не является допустимым именем культуры. Дополнительные сведения см. в разделе "Примечания к вызывающим объектам".

Примеры

В следующем примере извлекается текущий язык и региональные параметры. Если это не французский язык и региональные параметры (Франция), он вызывает CultureInfo(String) конструктор для создания CultureInfo экземпляра объекта, который представляет язык и региональные параметры французского языка (Франция) и делает его текущим языком и региональными параметрами. В противном случае он создает CultureInfo экземпляр объекта , который представляет язык и региональные параметры французского языка (Люксембург) и делает его текущим языком и региональными параметрами.

using System;
using System.Globalization;

public class ChangeEx1
{
    public static void Main()
    {
        CultureInfo current = CultureInfo.CurrentCulture;
        Console.WriteLine("The current culture is {0}", current.Name);
        CultureInfo newCulture;
        if (current.Name.Equals("fr-FR"))
            newCulture = new CultureInfo("fr-LU");
        else
            newCulture = new CultureInfo("fr-FR");

        CultureInfo.CurrentCulture = newCulture;
        Console.WriteLine("The current culture is now {0}",
                          CultureInfo.CurrentCulture.Name);
    }
}
// The example displays output like the following:
//     The current culture is en-US
//     The current culture is now fr-FR
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim current As CultureInfo = CultureInfo.CurrentCulture
      Console.WriteLine("The current culture is {0}", current.Name)
      Dim newCulture As CultureInfo
      If current.Name.Equals("fr-FR") Then
         newCulture = New CultureInfo("fr-LU")
      Else
         newCulture = new CultureInfo("fr-FR")
      End If

      CultureInfo.CurrentCulture = newCulture
      Console.WriteLine("The current culture is now {0}",
                        CultureInfo.CurrentCulture.Name)
   End Sub
End Module
' The example displays output like the following:
'     The current culture is en-US
'     The current culture is now fr-FR

Комментарии

Список стандартных имен языка и региональных параметров в системах Windows см. в столбце Языковой тег в списке имен языков или регионов, поддерживаемых Windows. Теги языков указаны в соответствии со стандартом BCP 47. Кроме того, начиная с Windows 10, name может быть любым допустимым языковым тегом BCP-47.

Если name имеет значение String.Empty, конструктор создает экземпляр инвариантного языка и региональных параметров. Это эквивалентно получению InvariantCulture значения свойства .

Пользователь может переопределить некоторые значения, связанные с текущим языком и региональными параметрами Windows, с помощью региональных и языковых параметров панели управления. Например, пользователь может отобразить дату в другом формате или использовать валюту, отличную от используемой по умолчанию для языка и региональных параметров. Если идентификатор языка и региональных параметров, связанный с , совпадает с name идентификатором текущего языка и региональных параметров Windows, этот конструктор создает CultureInfo объект, использующий эти переопределения, включая пользовательские параметры для свойств экземпляра, возвращаемого DateTimeFormatInfo свойством DateTimeFormat , и свойства экземпляра, возвращаемого NumberFormatInfo свойством NumberFormat . Если параметры пользователя несовместимы с языком и региональными параметрами, связанными с CultureInfo, например, если выбранный календарь не является одним из OptionalCalendars, результаты методов и значения свойств не определены.

Если идентификатор языка и региональных параметров, связанный с name , не соответствует идентификатору текущего языка и региональных параметров Windows, этот конструктор создает CultureInfo объект , использующий значения по умолчанию для указанного языка и региональных параметров.

Свойство UseUserOverride всегда имеет значение true.

Например, предположим, что арабский (Саудовская Аравия) — это текущий язык и региональные параметры Windows, а пользователь изменил календарь с хиджра на григорианский:

  • В CultureInfo("ar-SA")параметре Calendar задается значение GregorianCalendar (которое является пользовательским параметром), а UseUserOverride для — значение true.
  • При CultureInfo("th-TH")использовании параметр имеет значение ThaiBuddhistCalendar (который является календарем по умолчанию для th-TH) и UseUserOverride имеет значение trueCalendar .

Свойству LCID нового CultureInfo задается идентификатор языка и региональных параметров, связанный с указанным именем.

Примечания для тех, кто вызывает этот метод

В .NET Framework 3.5 и более ранних версиях создается исключение ArgumentException , если name не является допустимым именем языка и региональных параметров. Начиная с .NET Framework 4, этот конструктор создает CultureNotFoundExceptionисключение . Начиная с приложений, работающих под управлением .NET Framework 4 или более поздней версии в Windows 7 или более поздней версии, метод пытается получить CultureInfo объект, идентификатор которого находится name в операционной системе. Если операционная система не поддерживает этот язык и региональные параметры, а если name не является именем дополнительного или заменяющего языка и региональных параметров, метод создает CultureNotFoundException исключение.

В .NET 6 и более поздних версиях возникает исключение , если приложение выполняется в среде, CultureNotFoundException где включен инвариантный режим глобализации, например, некоторые контейнеры Docker и указан язык и региональные параметры, отличные от инвариантного языка и региональных параметров.

См. также раздел

Применяется к

CultureInfo(Int32, Boolean)

Исходный код:
CultureInfo.cs
Исходный код:
CultureInfo.cs
Исходный код:
CultureInfo.cs

Инициализирует новый экземпляр CultureInfo класса на основе языка и региональных параметров, заданных идентификатором языка и региональных параметров, и значения, указывающего, следует ли использовать выбранные пользователем параметры языка и региональных параметров из Windows.

public:
 CultureInfo(int culture, bool useUserOverride);
public CultureInfo (int culture, bool useUserOverride);
new System.Globalization.CultureInfo : int * bool -> System.Globalization.CultureInfo
Public Sub New (culture As Integer, useUserOverride As Boolean)

Параметры

culture
Int32

Предварительно определенный идентификатор CultureInfo, свойство LCID существующего объекта CultureInfo или идентификатор языка и региональных параметров, свойственных только Windows.

useUserOverride
Boolean

true для использования выбранных пользователем параметров языка и региональных параметров (только Для Windows); false , чтобы использовать параметры языка и региональных параметров по умолчанию.

Исключения

Значение параметра culture меньше нуля.

culture не является допустимым идентификатором языка и региональных параметров. Дополнительные сведения см. в разделе "Примечания для вызывающей стороны".

Комментарии

Предопределенные идентификаторы языка и региональных параметров, доступные в системах Windows, перечислены в столбце Языковой тег в списке имен языков или регионов, поддерживаемых Windows. Теги языков указаны в соответствии со стандартом BCP 47.

В большинстве случаев culture параметр сопоставляется с соответствующим идентификатором языкового стандарта NLS. Значение culture параметра становится значением LCID свойства нового CultureInfoобъекта .

Рекомендуется вызывать конструктор CultureInfo.CultureInfoимени языкового стандарта , так как имена языкового стандарта предпочтительнее, чем LCID. Для пользовательских языковых стандартов требуется имя языкового стандарта.

Пользователь может переопределить некоторые значения, связанные с текущим языком и региональными параметрами Windows, с помощью региональных и языковых параметров панели управления. Например, пользователь может отобразить дату в другом формате или использовать валюту, отличную от используемой по умолчанию для языка и региональных параметров.

Приложения обычно не должны запрещать переопределения пользователей. Запрет переопределений сам по себе не гарантирует стабильность данных. Дополнительные сведения см. в записи блога Язык и региональные параметры не должны считаться стабильными (за исключением инвариантных).

Если свойству UseUserOverride присвоено значение true , а указанный идентификатор языка и региональных параметров соответствует идентификатору текущего языка и региональных параметров Windows, этот конструктор создает CultureInfo , который использует эти переопределения, включая пользовательские параметры для свойств экземпляра, возвращаемого DateTimeFormatInfo свойством DateTimeFormat , и свойства экземпляра, возвращаемого NumberFormatInfo свойством NumberFormat . Если параметры пользователя несовместимы с языком и региональными параметрами, связанными с CultureInfo, например, если выбранный календарь не является одним из OptionalCalendars, результаты методов и значения свойств не определены.

В противном случае этот конструктор создает CultureInfo объект , который использует значения по умолчанию для указанного языка и региональных параметров.

Значение useUserOverride параметра становится значением UseUserOverride свойства .

Например, предположим, что текущим языком и региональными параметрами Windows является арабский (Саудовская Аравия), а пользователь изменил календарь с хиджра на григорианский.

  • С CultureInfo("0x0401", true) (имя языка и региональных параметров ar-SA) Calendar имеет значение GregorianCalendar (который является пользовательским параметром), а UseUserOverride для — значение true.

  • С CultureInfo("0x0401", false) (имя языка и региональных параметров ar-SA) Calendar имеет значение HijriCalendar (который является календарем по умолчанию для ar-SA), а UseUserOverride для — значение false.

  • С CultureInfo("0x041E", true) (имя языка и региональных параметров th-TH), Calendar имеет значение ThaiBuddhistCalendar (который является календарем по умолчанию для th-TH) и UseUserOverride имеет значение true.

  • С CultureInfo("0x041E", false) (имя языка и региональных параметров th-TH), Calendar имеет значение ThaiBuddhistCalendar (который является календарем по умолчанию для th-TH) и UseUserOverride имеет значение false.

Для языков и региональных параметров, использующих евро, платформа .NET Framework и Windows XP устанавливают валюту по умолчанию в виде евро. Однако в более старых версиях Windows это не так. Таким образом, если пользователь более старой версии Windows не изменил параметр валюты с помощью региональных и языковых параметров панели управления, возможно, валюта будет неправильной. Чтобы использовать параметр .NET Framework по умолчанию для валюты, приложение должно задать useUserOverride для параметра значение false.

Примечание

Для обратной совместимости язык и региональные параметры, созданные culture с помощью параметра 0x0004 или 0x7c04, будут иметь Name свойство zh-CHS или zh-CHT соответственно. Вместо этого следует предпочесть создавать язык и региональные параметры с использованием текущих стандартных zh-Hans имен языка и региональных параметров или zh-Hant, если у вас нет причин для использования более старых имен.

Примечания для тех, кто вызывает этот метод

В .NET Framework 3.5 и более ранних версиях создается исключение , ArgumentException если culture не является допустимым идентификатором языка и региональных параметров. Начиная с .NET Framework 4, этот конструктор создает CultureNotFoundExceptionисключение . Начиная с приложений, работающих под управлением .NET Framework 4 или более поздней версии в Windows 7 или более поздней версии, метод пытается получить CultureInfo объект, идентификатор которого находится culture в операционной системе. Если операционная система не поддерживает этот язык и региональные параметры, метод создает CultureNotFoundException исключение.

В .NET 6 и более поздних версиях возникает исключение , если приложение выполняется в среде, CultureNotFoundException где включен инвариантный режим глобализации, например, некоторые контейнеры Docker и указан язык и региональные параметры, отличные от инвариантного языка и региональных параметров.

См. также раздел

Применяется к

CultureInfo(String, Boolean)

Исходный код:
CultureInfo.cs
Исходный код:
CultureInfo.cs
Исходный код:
CultureInfo.cs

Инициализирует новый экземпляр CultureInfo класса на основе языка и региональных параметров, заданных именем, и значения, указывающего, следует ли использовать выбранные пользователем параметры языка и региональных параметров из Windows.

public:
 CultureInfo(System::String ^ name, bool useUserOverride);
public CultureInfo (string name, bool useUserOverride);
new System.Globalization.CultureInfo : string * bool -> System.Globalization.CultureInfo
Public Sub New (name As String, useUserOverride As Boolean)

Параметры

name
String

Предварительно определенное имя CultureInfo, свойство Name существующего объекта CultureInfo или имя языка и региональных параметров, свойственных только Windows. name не учитывает регистр.

useUserOverride
Boolean

true для использования выбранных пользователем параметров языка и региональных параметров (только Для Windows); false , чтобы использовать параметры языка и региональных параметров по умолчанию.

Исключения

Параметр name имеет значение null.

name не является допустимым именем языка и региональных параметров. Дополнительные сведения см. в разделе "Примечания для вызывающей стороны".

Комментарии

Список стандартных имен языка и региональных параметров см. в столбце Языковой тег в списке имен языков или регионов, поддерживаемых Windows. Теги языков указаны в соответствии со стандартом BCP 47. Кроме того, начиная с Windows 10, name может быть любым допустимым языковым тегом BCP-47.

Если name имеет значение String.Empty, конструктор создает экземпляр инвариантного языка и региональных параметров. Это эквивалентно получению InvariantCulture значения свойства .

Пользователь может переопределить некоторые значения, связанные с текущим языком и региональными параметрами Windows, с помощью региональных и языковых параметров панели управления. Например, пользователь может отобразить дату в другом формате или использовать валюту, отличную от используемой по умолчанию для языка и региональных параметров.

Приложения обычно не должны запрещать переопределения пользователей. Запрет переопределений сам по себе не гарантирует стабильность данных. Дополнительные сведения см. в записи блога Язык и региональные параметры не должны считаться стабильными (за исключением инвариантных).

Если свойству UseUserOverride присвоено значение true , а идентификатор языка и региональных параметров, связанный с указанным именем языка и региональных параметров, совпадает с идентификатором текущего языка и региональных параметров Windows, этот конструктор создает CultureInfo объект , который использует эти переопределения, включая пользовательские параметры для свойств экземпляра DateTimeFormatInfo , возвращаемого свойством DateTimeFormat , и свойства экземпляра NumberFormatInfo , возвращаемые свойством NumberFormat . Если параметры пользователя несовместимы с языком и региональными параметрами, связанными с CultureInfo, например, если выбранный календарь не является одним из OptionalCalendars, результаты методов и значения свойств не определены.

В противном случае этот конструктор создает CultureInfo объект , который использует значения по умолчанию для указанного языка и региональных параметров.

Значение useUserOverride параметра становится значением UseUserOverride свойства .

Например, предположим, что арабский (Саудовская Аравия) — это текущий язык и региональные параметры Windows, а пользователь изменил календарь с хиджра на григорианский.

  • В CultureInfo("ar-SA", true)параметре Calendar задается значение GregorianCalendar (которое является пользовательским параметром), а UseUserOverride для — значение true.

  • С CultureInfo("ar-SA", false)параметром Calendar имеет значение HijriCalendar (который является календарем по умолчанию для ar-SA), а UseUserOverride для — значение false.

  • При CultureInfo("th-TH", true)использовании параметр имеет значение ThaiBuddhistCalendar (который является календарем по умолчанию для th-TH) и UseUserOverride имеет значение trueCalendar .

  • При CultureInfo("th-TH", false)использовании параметр имеет значение ThaiBuddhistCalendar (который является календарем по умолчанию для th-TH) и UseUserOverride имеет значение falseCalendar .

Свойству LCID нового CultureInfo задается идентификатор языка и региональных параметров, связанный с указанным именем.

Для языков и региональных параметров, использующих евро, платформа .NET Framework и Windows XP устанавливают валюту по умолчанию в виде евро. Однако более старые версии Windows этого не делают. Таким образом, если пользователь более старой версии Windows не изменил параметр валюты с помощью региональных и языковых параметров панели управления, возможно, валюта будет неправильной. Чтобы использовать параметр .NET Framework по умолчанию для валюты, приложение должно задать useUserOverride для параметра значение false.

Примечания для тех, кто вызывает этот метод

В .NET Framework 3.5 и более ранних версиях создается исключение ArgumentException , если name не является допустимым именем языка и региональных параметров. Начиная с .NET Framework 4, этот конструктор создает CultureNotFoundExceptionисключение . Начиная с приложений, работающих под управлением .NET Framework 4 или более поздней версии в Windows 7 или более поздней версии, метод пытается получить CultureInfo объект, идентификатор которого находится name в операционной системе. Если операционная система не поддерживает этот язык и региональные параметры, а если name не является именем дополнительного или заменяющего языка и региональных параметров, метод создает CultureNotFoundException исключение.

В .NET 6 и более поздних версиях возникает исключение , если приложение выполняется в среде, CultureNotFoundException где включен инвариантный режим глобализации, например, некоторые контейнеры Docker и указан язык и региональные параметры, отличные от инвариантного языка и региональных параметров.

См. также раздел

Применяется к