CultureInfo 建構函式

定義

初始化 CultureInfo 類別的新執行個體。

多載

CultureInfo(Int32)

根據文化特性識別項所指定的文化特性,初始化 CultureInfo 類別的新執行個體。

CultureInfo(String)

根據名稱所指定的文化特性,初始化 CultureInfo 類別的新執行個體。

CultureInfo(Int32, Boolean)

根據文化特性識別碼所指定的文化特性,以及指定是否使用 Windows 中用戶選取的文化特性設定的值,初始化 類別的新實例 CultureInfo

CultureInfo(String, Boolean)

根據名稱所指定的文化特性,以及指定是否從 Windows 使用使用者選取的文化特性設定的值,初始化 類別的新實例 CultureInfo

CultureInfo(Int32)

根據文化特性識別項所指定的文化特性,初始化 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 識別項、現有 CultureInfo 物件的 LCID 屬性,或 Windows 專用文化特性識別項。

例外狀況

culture 小於零。

culture 不是有效的文化特性識別項。 如需詳細資訊,請參閱<呼叫者注意事項>一節。

備註

Windows 系統上可用文化特性的預先定義文化特性識別符會列在 Windows 所支援語言/區域名稱清單中的 [語言卷標] 資料行中。 文化名稱遵循 BCP 47 定義的標準。

在大部分情況下, culture 參數會對應至對應的國家語言支援 (NLS) 地區設定標識符。 參數的值 culture 會成為 LCIDCultureInfo的屬性值。

建議您呼叫地區設定名稱建構 CultureInfo.CultureInfo函式 ,因為地區設定名稱最好是 LCID。 針對自定義地區設定,需要地區設定名稱。

使用者可能會透過 控制台 的區域和語言選項部分,選擇覆寫與目前 Windows 文化特性相關聯的某些值。 例如,使用者可能會選擇以不同的格式顯示日期,或使用文化特性預設值以外的貨幣。 如果指定的文化特性識別碼符合目前 Windows 文化特性的文化特性識別碼,則此建構函式會CultureInfo建立使用這些覆寫的 DateTimeFormatInfo ,包括屬性所DateTimeFormat傳回之實例屬性的用戶設定,以及 屬性所NumberFormat傳回之實例的屬性NumberFormatInfo。 例如,如果用戶設定與與 (相關聯的 CultureInfo 文化特性不相容,則選取的行事曆不是其中一個 OptionalCalendars) 方法的結果,而且屬性的值是未定義的。

如果指定的文化特性標識碼不符合目前 Windows 文化特性的標識碼,這個建構函式會建立 , CultureInfo 使用指定文化特性的預設值。

屬性 UseUserOverride 一律設定為 true

例如,假設阿拉伯文 (沙烏地阿拉伯) 是目前的 Windows 文化特性,而且使用者已將行事曆從 Hijri 變更為公曆。

對於使用歐元的文化特性,.NET Framework 和 Windows XP 會將預設貨幣設定為歐元。 不過,舊版的 Windows 不會。 因此,如果舊版 Windows 的使用者尚未透過 控制台 的區域和語言選項部分變更貨幣設定,則貨幣可能不正確。 若要使用貨幣的 .NET Framework 預設設定,應用程式應該使用CultureInfo接受 useUserOverride 參數的建構函式多載,並將其設定為 false

注意

為了回溯相容性,使用 culture 0x0004 或 0x7c04 參數所建構的文化特性會分別具有 Namezh-CHT的屬性zh-CHS。 您應該改為偏好使用 或 zh-Hant目前的標準文化特性名稱zh-Hans來建構文化特性,除非您有使用舊名稱的原因。

給呼叫者的注意事項

如果 不是有效的文化特性識別碼,.NET Framework 3.5 和舊版會擲回 ArgumentExceptionculture 。 從 .NET Framework 4 開始,這個建構函式會CultureNotFoundException擲回 。 從在 Windows 7 或更新版本上 .NET Framework 4 或更新版本下執行的應用程式開始,此方法會嘗試擷取CultureInfo標識碼culture為來自操作系統的物件;如果操作系統不支援該文化特性,方法會CultureNotFoundException擲回例外狀況。

在 .NET 6 和更新版本上, CultureNotFoundException 如果應用程式是在啟用全球化非變異模式的環境中執行,則會擲回 ,例如,某些 Docker 容器,以及指定非變異文化特性以外的文化特性。

另請參閱

適用於

CultureInfo(String)

根據名稱所指定的文化特性,初始化 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 名稱、現有 CultureInfoName,或 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 語言標記。

如果 為 nameString.Empty,建構函式會建立不因文化特性而異的 InvariantCulture 實例;這相當於擷取 屬性的值。

使用者可能會透過 控制台 的區域和語言選項部分,選擇覆寫與目前 Windows 文化特性相關聯的某些值。 例如,使用者可能會選擇以不同的格式顯示日期,或使用文化特性預設值以外的貨幣。 如果與 name 相關聯的文化特性識別碼符合目前 Windows 文化特性的文化特性識別碼,這個建構函式會CultureInfo建立使用這些覆寫的物件,包括屬性所DateTimeFormat傳回之實例屬性DateTimeFormatInfo的用戶設定,以及 屬性所NumberFormat傳回之實例的屬性NumberFormatInfo。 如果使用者設定與相關聯的 CultureInfo文化特性不相容,例如,如果選取的行事曆不是 其中 OptionalCalendars一個 ,則方法的結果和屬性的值是未定義的。

如果與 name 相關聯的文化特性標識碼不符合目前 Windows 文化特性的文化特性標識碼,這個建構函式會 CultureInfo 建立物件,該物件會使用指定文化特性的預設值。

屬性 UseUserOverride 一律設定為 true

例如,假設阿拉伯文 (沙烏地阿拉伯) 是 Windows 目前的文化特性,而使用者已將行事曆從 Hijri 變更為公曆:

LCIDCultureInfo 的 屬性會設定為與指定名稱相關聯的文化特性識別碼。

給呼叫者的注意事項

如果 不是有效的文化特性名稱,.NET Framework 3.5 和舊版會擲回 ArgumentExceptionname 。 從 .NET Framework 4 開始,這個建構函式會CultureNotFoundException擲回 。 從在 Windows 7 或更新版本上 .NET Framework 4 或更新版本下執行的應用程式開始,此方法會嘗試擷取CultureInfo標識碼name來自操作系統的物件;如果操作系統不支援該文化特性,而且如果 name 不是增補或取代文化特性的名稱,方法會CultureNotFoundException擲回例外狀況。

在 .NET 6 和更新版本上, CultureNotFoundException 如果應用程式是在啟用全球化非變異模式的環境中執行,則會擲回 ,例如,某些 Docker 容器,以及指定非變異文化特性以外的文化特性。

另請參閱

適用於

CultureInfo(Int32, Boolean)

根據文化特性識別碼所指定的文化特性,以及指定是否從 Windows 使用使用者選取的文化特性設定的值,初始化 類別的新實例 CultureInfo

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 識別項、現有 CultureInfo 物件的 LCID 屬性,或 Windows 專用文化特性識別項。

useUserOverride
Boolean

true 表示只 (Windows) 使用用戶選取的文化特性設定; false 使用預設文化特性設定。

例外狀況

culture 小於零。

culture 不是有效的文化特性識別項。 如需詳細資訊,請參閱<呼叫者注意事項>一節。

備註

Windows 系統上可用的預先定義文化特性識別符會列在 Windows 所支援語言/區域名稱清單中的 [語言卷標] 資料行中。 文化名稱遵循 BCP 47 定義的標準。

在大部分情況下, culture 參數會對應至對應的國家語言支援 (NLS) 地區設定標識符。 參數的值 culture 會成為 LCIDCultureInfo的屬性值。

建議您呼叫地區設定名稱建構 CultureInfo.CultureInfo函式 ,因為地區設定名稱最好是 LCID。 針對自定義地區設定,需要地區設定名稱。

使用者可能會透過 控制台 的區域和語言選項部分,選擇覆寫與目前 Windows 文化特性相關聯的某些值。 例如,使用者可能會選擇以不同的格式顯示日期,或使用文化特性預設值以外的貨幣。

應用程式通常不應該不允許使用者覆寫。 不允許覆寫本身並不保證數據穩定性。 如需詳細資訊,請參閱部落格文章 文化特性數據不應視為穩定 (,但非變異) 除外

UseUserOverride如果 屬性設定true為 ,且指定的文化特性標識碼符合目前 Windows 文化特性的標識碼,則此建構函式會CultureInfo建立使用這些覆寫的 ,包括屬性所DateTimeFormat傳回之實例屬性DateTimeFormatInfo的使用者設定,以及 屬性所NumberFormat傳回之實例的屬性NumberFormatInfo。 如果使用者設定與相關聯的 CultureInfo文化特性不相容,例如,如果選取的行事曆不是 其中 OptionalCalendars一個 ,則方法的結果和屬性的值是未定義的。

否則,這個建構函式會建立使用 CultureInfo 指定文化特性之預設值的 。

參數的值 useUserOverride 會變成 屬性的值 UseUserOverride

例如,假設阿拉伯文 (沙烏地阿拉伯) 是 Windows 目前的文化特性,而使用者已將行事曆從回歷變更為公曆。

對於使用歐元的文化特性,.NET Framework 和 Windows XP 會將預設貨幣設定為歐元。 不過,舊版的 Windows 不會。 因此,如果舊版 Windows 的使用者未透過 控制台 的區域和語言選項部分變更貨幣設定,貨幣可能不正確。 若要使用貨幣的 .NET Framework 預設設定,應用程式應將 useUserOverride 參數設定為 false

注意

為了回溯相容性,使用 culture 0x0004 或 0x7c04 參數建構的文化特性會分別具有 Name zh-CHS 或 zh-CHT 的 屬性。 您應該改為偏好使用 或 zh-Hant 目前的標準文化特性名稱 zh-Hans 來建構文化特性,除非您有使用舊名稱的原因。

給呼叫者的注意事項

如果 不是有效的文化特性識別碼,.NET Framework 3.5 和舊版會擲回 ArgumentExceptionculture 。 從 .NET Framework 4 開始,這個建構函式會CultureNotFoundException擲回 。 從在 Windows 7 或更新版本上 .NET Framework 4 或更新版本下執行的應用程式開始,此方法會嘗試擷取CultureInfo標識碼culture為來自操作系統的物件;如果操作系統不支援該文化特性,方法會CultureNotFoundException擲回例外狀況。

在 .NET 6 和更新版本上, CultureNotFoundException 如果應用程式是在啟用全球化非變異模式的環境中執行,則會擲回 ,例如,某些 Docker 容器,以及指定非變異文化特性以外的文化特性。

另請參閱

適用於

CultureInfo(String, Boolean)

根據名稱所指定的文化特性,以及指定是否從 Windows 使用使用者選取的文化特性設定的值,初始化 類別的新實例 CultureInfo

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 名稱、現有 CultureInfoName,或 Windows 專用文化特性名稱。 name 不區分大小寫。

useUserOverride
Boolean

true 表示僅使用 Windows) (用戶選取的文化特性設定; false 使用預設文化特性設定。

例外狀況

name 為 null。

name 不是有效的文化特性名稱。 如需詳細資訊,請參閱<呼叫者注意事項>一節。

備註

如需預先定義文化特性名稱的清單,請參閱 Windows 支援的語言/區域名稱清單中的語言標籤資料行。 文化名稱遵循 BCP 47 定義的標準。 此外,從 Windows 10 開始,name可以是任何有效的 BCP-47 語言標籤。

如果 為 nameString.Empty,則建構函式會建立不變異文化特性的 InvariantCulture 實例;這相當於擷取 屬性的值。

使用者可能會透過 控制台 的區域和語言選項部分,選擇覆寫與目前 Windows 文化特性相關聯的某些值。 例如,使用者可能會選擇以不同的格式顯示日期,或使用文化特性預設值以外的貨幣。

應用程式通常不應該不允許使用者覆寫。 不允許覆寫本身並不保證數據穩定性。 如需詳細資訊,請參閱部落格文章 文化特性數據不應視為穩定 (,但 Invariant) 除外

UseUserOverride如果 屬性設定true為 ,且與指定之文化特性名稱相關聯的文化特性標識碼符合目前 Windows 文化特性的文化特性識別碼,則此建構函式會CultureInfo建立使用這些覆寫的 ,包括屬性所DateTimeFormat傳回之實例屬性DateTimeFormatInfo的用戶設定,以及 屬性所NumberFormat傳回之實例的屬性NumberFormatInfo。 例如,如果使用者設定與相關聯的 CultureInfo文化特性不相容,例如,如果選取的行事曆不是 其中 OptionalCalendars一個 ,則方法的結果和屬性的值是未定義的。

否則,這個建構函式會建立 , CultureInfo 以使用指定文化特性的預設值。

參數的值 useUserOverride 會變成 屬性的值 UseUserOverride

例如,假設阿拉伯文 (沙烏地阿拉伯) 是 Windows 的目前文化特性,而且使用者已將行事曆從 Hijri 變更為公曆。

LCIDCultureInfo 的 屬性會設定為與指定名稱相關聯的文化特性識別碼。

對於使用歐元的文化特性,.NET Framework 和 Windows XP 會將預設貨幣設定為歐元。 不過,舊版 Windows 不會這麼做。 因此,如果舊版 Windows 的使用者未透過 控制台 的區域和語言選項部分變更貨幣設定,貨幣可能不正確。 若要使用貨幣的 .NET Framework 預設設定,應用程式應將 useUserOverride 參數設定為 false

給呼叫者的注意事項

如果 不是有效的文化特性名稱,.NET Framework 3.5 和舊版會擲回 ArgumentExceptionname 。 從 .NET Framework 4 開始,這個建構函式會擲回 CultureNotFoundException。 從在 Windows 7 或更新版本上 .NET Framework 4 或更新版本下執行的應用程式開始,此方法會嘗試擷取CultureInfo標識碼name來自操作系統的物件;如果操作系統不支援該文化特性,而且如果 name 不是增補或取代文化特性的名稱,則方法會CultureNotFoundException擲回例外狀況。

在 .NET 6 和更新版本上, CultureNotFoundException 如果應用程式是在啟用全球化-invariant 模式的環境中執行,則會擲回 ,例如,某些 Docker 容器,以及指定非變異文化特性以外的文化特性。

另請參閱

適用於