CultureInfo CultureInfo CultureInfo CultureInfo Class

Définition

Fournit des informations sur une culture spécifique (appelée paramètres régionaux pour le développement de code non managé).Provides information about a specific culture (called a locale for unmanaged code development). Ces informations incluent les noms de la culture, le système d’écriture, le calendrier utilisé, l’ordre de tri des chaînes, ainsi que le format des dates et des nombres.The information includes the names for the culture, the writing system, the calendar used, the sort order of strings, and formatting for dates and numbers.

public ref class CultureInfo : ICloneable, IFormatProvider
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class CultureInfo : ICloneable, IFormatProvider
type CultureInfo = class
    interface ICloneable
    interface IFormatProvider
Public Class CultureInfo
Implements ICloneable, IFormatProvider
Héritage
CultureInfoCultureInfoCultureInfoCultureInfo
Attributs
Implémente

Exemples

L’exemple suivant montre comment créer un CultureInfo objet pour l’espagnol (Espagne) avec le tri international et un autre CultureInfo objet avec le tri traditionnel.The following example shows how to create a CultureInfo object for Spanish (Spain) with the international sort and another CultureInfo object with the traditional sort.

using namespace System;
using namespace System::Collections;
using namespace System::Globalization;
int main()
{
   
   // Creates and initializes the CultureInfo which uses the international sort.
   CultureInfo^ myCIintl = gcnew CultureInfo( "es-ES",false );
   
   // Creates and initializes the CultureInfo which uses the traditional sort.
   CultureInfo^ myCItrad = gcnew CultureInfo( 0x040A,false );
   
   // Displays the properties of each culture.
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "PROPERTY", "INTERNATIONAL", "TRADITIONAL" );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "CompareInfo", myCIintl->CompareInfo, myCItrad->CompareInfo );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "DisplayName", myCIintl->DisplayName, myCItrad->DisplayName );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "EnglishName", myCIintl->EnglishName, myCItrad->EnglishName );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "IsNeutralCulture", myCIintl->IsNeutralCulture, myCItrad->IsNeutralCulture );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "IsReadOnly", myCIintl->IsReadOnly, myCItrad->IsReadOnly );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "LCID", myCIintl->LCID, myCItrad->LCID );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "Name", myCIintl->Name, myCItrad->Name );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "NativeName", myCIintl->NativeName, myCItrad->NativeName );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "Parent", myCIintl->Parent, myCItrad->Parent );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "TextInfo", myCIintl->TextInfo, myCItrad->TextInfo );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "ThreeLetterISOLanguageName", myCIintl->ThreeLetterISOLanguageName, myCItrad->ThreeLetterISOLanguageName );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "ThreeLetterWindowsLanguageName", myCIintl->ThreeLetterWindowsLanguageName, myCItrad->ThreeLetterWindowsLanguageName );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "TwoLetterISOLanguageName", myCIintl->TwoLetterISOLanguageName, myCItrad->TwoLetterISOLanguageName );
   Console::WriteLine();
   
   // Compare two strings using myCIintl -> 
   Console::WriteLine( "Comparing \"llegar\" and \"lugar\"" );
   Console::WriteLine( "   With myCIintl -> CompareInfo -> Compare: {0}", myCIintl->CompareInfo->Compare( "llegar", "lugar" ) );
   Console::WriteLine( "   With myCItrad -> CompareInfo -> Compare: {0}", myCItrad->CompareInfo->Compare( "llegar", "lugar" ) );
}

/*
This code produces the following output.

PROPERTY                       INTERNATIONAL                                  TRADITIONAL              
CompareInfo                    CompareInfo - es-ES                            CompareInfo - es-ES_tradnl
DisplayName                    Spanish (Spain)                                Spanish (Spain)          
EnglishName                    Spanish (Spain, International Sort)            Spanish (Spain, Traditional Sort)
IsNeutralCulture               False                                          False                    
IsReadOnly                     False                                          False                    
LCID                           3082                                           1034                     
Name                           es-ES                                          es-ES                    
NativeName                     Español (España, alfabetización internacional) Español (España, alfabetización tradicional)
Parent                         es                                             es                       
TextInfo                       TextInfo - es-ES                               TextInfo - es-ES_tradnl  
ThreeLetterISOLanguageName     spa                                            spa                      
ThreeLetterWindowsLanguageName ESN                                            ESP                      
TwoLetterISOLanguageName       es                                             es                       

Comparing "llegar" and "lugar"
   With myCIintl -> CompareInfo -> Compare: -1
   With myCItrad -> CompareInfo -> Compare: 1

*/
using System;
using System.Collections;
using System.Globalization;

public class SamplesCultureInfo
{

   public static void Main()
   {

      // Creates and initializes the CultureInfo which uses the international sort.
      CultureInfo myCIintl = new CultureInfo("es-ES", false);

      // Creates and initializes the CultureInfo which uses the traditional sort.
      CultureInfo myCItrad = new CultureInfo(0x040A, false);

      // Displays the properties of each culture.
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "PROPERTY", "INTERNATIONAL", "TRADITIONAL");
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "CompareInfo", myCIintl.CompareInfo, myCItrad.CompareInfo);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "DisplayName", myCIintl.DisplayName, myCItrad.DisplayName);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "EnglishName", myCIintl.EnglishName, myCItrad.EnglishName);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "IsNeutralCulture", myCIintl.IsNeutralCulture, myCItrad.IsNeutralCulture);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "IsReadOnly", myCIintl.IsReadOnly, myCItrad.IsReadOnly);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "LCID", myCIintl.LCID, myCItrad.LCID);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "Name", myCIintl.Name, myCItrad.Name);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "NativeName", myCIintl.NativeName, myCItrad.NativeName);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "Parent", myCIintl.Parent, myCItrad.Parent);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "TextInfo", myCIintl.TextInfo, myCItrad.TextInfo);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "ThreeLetterISOLanguageName", myCIintl.ThreeLetterISOLanguageName, myCItrad.ThreeLetterISOLanguageName);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "ThreeLetterWindowsLanguageName", myCIintl.ThreeLetterWindowsLanguageName, myCItrad.ThreeLetterWindowsLanguageName);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "TwoLetterISOLanguageName", myCIintl.TwoLetterISOLanguageName, myCItrad.TwoLetterISOLanguageName);
      Console.WriteLine();

      // Compare two strings using myCIintl.
      Console.WriteLine("Comparing \"llegar\" and \"lugar\"");
      Console.WriteLine("   With myCIintl.CompareInfo.Compare: {0}", myCIintl.CompareInfo.Compare("llegar", "lugar"));
      Console.WriteLine("   With myCItrad.CompareInfo.Compare: {0}", myCItrad.CompareInfo.Compare("llegar", "lugar"));

   }

}

/*
This code produces the following output.

PROPERTY                       INTERNATIONAL                                  TRADITIONAL              
CompareInfo                    CompareInfo - es-ES                            CompareInfo - es-ES_tradnl
DisplayName                    Spanish (Spain)                                Spanish (Spain)          
EnglishName                    Spanish (Spain, International Sort)            Spanish (Spain, Traditional Sort)
IsNeutralCulture               False                                          False                    
IsReadOnly                     False                                          False                    
LCID                           3082                                           1034                     
Name                           es-ES                                          es-ES                    
NativeName                     Español (España, alfabetización internacional) Español (España, alfabetización tradicional)
Parent                         es                                             es                       
TextInfo                       TextInfo - es-ES                               TextInfo - es-ES_tradnl  
ThreeLetterISOLanguageName     spa                                            spa                      
ThreeLetterWindowsLanguageName ESN                                            ESP                      
TwoLetterISOLanguageName       es                                             es                       

Comparing "llegar" and "lugar"
   With myCIintl.CompareInfo.Compare: -1
   With myCItrad.CompareInfo.Compare: 1

*/
Imports System.Collections
Imports System.Globalization

Module Module1

    Public Sub Main()

        ' Creates and initializes the CultureInfo which uses the international sort.
        Dim myCIintl As New CultureInfo("es-ES", False)

        ' Creates and initializes the CultureInfo which uses the traditional sort.
        Dim myCItrad As New CultureInfo(&H40A, False)

        ' Displays the properties of each culture.
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "PROPERTY", "INTERNATIONAL", "TRADITIONAL")
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "CompareInfo", myCIintl.CompareInfo, myCItrad.CompareInfo)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "DisplayName", myCIintl.DisplayName, myCItrad.DisplayName)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "EnglishName", myCIintl.EnglishName, myCItrad.EnglishName)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "IsNeutralCulture", myCIintl.IsNeutralCulture, myCItrad.IsNeutralCulture)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "IsReadOnly", myCIintl.IsReadOnly, myCItrad.IsReadOnly)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "LCID", myCIintl.LCID, myCItrad.LCID)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "Name", myCIintl.Name, myCItrad.Name)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "NativeName", myCIintl.NativeName, myCItrad.NativeName)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "Parent", myCIintl.Parent, myCItrad.Parent)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "TextInfo", myCIintl.TextInfo, myCItrad.TextInfo)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "ThreeLetterISOLanguageName", myCIintl.ThreeLetterISOLanguageName, myCItrad.ThreeLetterISOLanguageName)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "ThreeLetterWindowsLanguageName", myCIintl.ThreeLetterWindowsLanguageName, myCItrad.ThreeLetterWindowsLanguageName)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "TwoLetterISOLanguageName", myCIintl.TwoLetterISOLanguageName, myCItrad.TwoLetterISOLanguageName)
        Console.WriteLine()

        ' Compare two strings using myCIintl.
        Console.WriteLine("Comparing ""llegar"" and ""lugar""")
        Console.WriteLine("   With myCIintl.CompareInfo.Compare: {0}", myCIintl.CompareInfo.Compare("llegar", "lugar"))
        Console.WriteLine("   With myCItrad.CompareInfo.Compare: {0}", myCItrad.CompareInfo.Compare("llegar", "lugar"))

    End Sub



'This code produces the following output.
'
'PROPERTY                       INTERNATIONAL                                  TRADITIONAL              
'CompareInfo                    CompareInfo - es-ES                            CompareInfo - es-ES_tradnl
'DisplayName                    Spanish (Spain)                                Spanish (Spain)          
'EnglishName                    Spanish (Spain, International Sort)            Spanish (Spain, Traditional Sort)
'IsNeutralCulture               False                                          False                    
'IsReadOnly                     False                                          False                    
'LCID                           3082                                           1034                     
'Name                           es-ES                                          es-ES                    
'NativeName                     Español (España, alfabetización internacional) Español (España, alfabetización tradicional)
'Parent                         es                                             es                       
'TextInfo                       TextInfo - es-ES                               TextInfo - es-ES_tradnl  
'ThreeLetterISOLanguageName     spa                                            spa                      
'ThreeLetterWindowsLanguageName ESN                                            ESP                      
'TwoLetterISOLanguageName       es                                             es                       
'
'Comparing "llegar" and "lugar"
'   With myCIintl.CompareInfo.Compare: -1
'   With myCItrad.CompareInfo.Compare: 1

End Module

Remarques

La CultureInfo classe fournit des informations spécifiques à la culture, telles que la langue, la sous-langue, le pays/la région, le calendrier et les conventions associées à une culture particulière.The CultureInfo class provides culture-specific information, such as the language, sublanguage, country/region, calendar, and conventions associated with a particular culture. Cette classe fournit également l’accès aux instances spécifiques à la DateTimeFormatInfoculture des objets CompareInfo, NumberFormatInfo, TextInfo et.This class also provides access to culture-specific instances of the DateTimeFormatInfo, NumberFormatInfo, CompareInfo, and TextInfo objects. Ces objets contiennent les informations requises pour les opérations spécifiques à la culture, telles que la casse, la mise en forme des dates et des nombres, et la comparaison de chaînes.These objects contain the information required for culture-specific operations, such as casing, formatting dates and numbers, and comparing strings. La CultureInfo classe est utilisée directement ou indirectement par les classes qui mettent en forme, analysent ou manipulent des données spécifiques à Stringla culture DateTimeOffset, telles que, DateTime, et les types numériques.The CultureInfo class is used either directly or indirectly by classes that format, parse, or manipulate culture-specific data, such as String, DateTime, DateTimeOffset, and the numeric types.

Dans cette section :In this section:

Noms et identificateurs de culture Culture names and identifiers
Cultures invariantes, neutres et spécifiques Invariant, neutral, and specific cultures
Cultures personnalisées Custom cultures
Données de culture dynamique Dynamic culture data
CultureInfo et données culturelles La culture actuelle et la culture d’interface utilisateur actuelle CultureInfo and cultural data The current culture and current UI culture
Obtention de toutes les cultures Getting all cultures
Culture et threads Culture and threads
Culture et domaines d’application Culture and application domains
Culture et opérations asynchrones basées sur des tâches Culture and task-based asynchronous operations
Sérialisation de l’objet CultureInfo CultureInfo object serialization
Remplacements du panneau de configuration Control Panel overrides
Autres ordres de tri Alternate sort orders
Culture et applications WindowsCulture and Windows apps

Noms et identificateurs de cultureCulture names and identifiers

La CultureInfo classe spécifie un nom unique pour chaque culture, en fonction de la norme RFC 4646.The CultureInfo class specifies a unique name for each culture, based on RFC 4646. Le nom est une combinaison d’un code de culture ISO 639 2 lettres minuscules associé à une langue et d’un code de sous-culture en majuscules ISO 3166 2, associé à un pays ou une région.The name is a combination of an ISO 639 two-letter lowercase culture code associated with a language and an ISO 3166 two-letter uppercase subculture code associated with a country or region. En outre, pour les applications qui .NET Framework 4.NET Framework 4 ciblent ou une version ultérieure et qui s’exécutent sous Windows 10 ou version ultérieure, les noms de culture qui correspondent aux balises de langue BCP-47 valides sont pris en charge.In addition, for apps that target .NET Framework 4.NET Framework 4 or later and are running under Windows 10 or later, culture names that correspond to valid BCP-47 language tags are supported.

Notes

Lorsqu’un nom de culture est passé à un constructeur de classe ou à une CreateSpecificCulture méthode CultureInfotelle que ou, son cas n’est pas significatif.When a culture name is passed to a class constructor or a method such as CreateSpecificCulture or CultureInfo, its case is not significant.

Le format du nom de culture basé sur la norme RFC 4646 est languagecode2>-pays/pays2, où languagecode2 est le code de langue à deux lettres et Country/pays2 est le code de sous-culture à deux lettres.The format for the culture name based on RFC 4646 is languagecode2>-country/regioncode2, where languagecode2 is the two-letter language code and country/regioncode2 is the two-letter subculture code. Voici quelques exemples : ja-JP pour le japonais (Japon) et en-US pour l’anglais (États-Unis).Examples include ja-JP for Japanese (Japan) and en-US for English (United States). Dans les cas où un code de langue à deux lettres n’est pas disponible, un code à trois lettres dérivé de ISO 639-2 est utilisé.In cases where a two-letter language code is not available, a three-letter code derived from ISO 639-2 is used.

Notez que certains noms de culture spécifient également un script ISO 15924.Note that some culture names also specify an ISO 15924 script. Par exemple, Cyrl spécifie le script cyrillique et LATN spécifie le script latin.For example, Cyrl specifies the Cyrillic script and Latn specifies the Latin script. Un nom de culture qui comprend un script utilise le modèle languagecode2-scripttag-Country/pays2.A culture name that includes a script uses the pattern languagecode2-scripttag-country/regioncode2. UZ-Cyrl-UZ est un exemple de ce type de nom de culture pour l’Ouszbek (cyrillique, Ouzbékistan).An example of this type of culture name is uz-Cyrl-UZ for Uzbek (Cyrillic, Uzbekistan). Sur les systèmes d’exploitation Windows antérieurs à Windows Vista, un nom de culture qui comprend un script utilise le modèle languagecode2-Country/pays2-scripttag, par exemple uz-UZ-Cyrl pour ouzbek (cyrillique, Ouzbékistan).On Windows operating systems before Windows Vista, a culture name that includes a script uses the pattern languagecode2-country/regioncode2-scripttag, for example, uz-UZ-Cyrl for Uzbek (Cyrillic, Uzbekistan).

Une culture neutre est spécifiée par le code de langue en minuscules à deux lettres uniquement.A neutral culture is specified by only the two-letter lowercase language code. Par exemple, fr spécifie la culture neutre pour le français et de de spécifie la culture neutre pour l’allemand.For example, fr specifies the neutral culture for French, and de specifies the neutral culture for German.

Notes

Il existe deux noms de culture qui contredisent cette règle.There are two culture names that contradict this rule. Les cultures chinois (simplifié), nom zh-Hans et chinois (traditionnel), nommées zh-Hant, sont des cultures neutres.The cultures Chinese (Simplified), named zh-Hans, and Chinese (Traditional), named zh-Hant, are neutral cultures. Les noms de culture représentent la norme actuelle et doivent être utilisés à moins que vous n’ayez une raison d’utiliser les anciens noms zh-CHS et zh-CHT.The culture names represent the current standard and should be used unless you have a reason for using the older names zh-CHS and zh-CHT.

Un identificateur de culture est une abréviation numérique internationale standard et contient les composants nécessaires pour identifier de manière unique l’une des cultures installées.A culture identifier is a standard international numeric abbreviation and has the components necessary to uniquely identify one of the installed cultures. Votre application peut utiliser des identificateurs de culture prédéfinis ou définir des identificateurs personnalisés.Your application can use predefined culture identifiers or define custom identifiers.

Certains noms et identificateurs de culture prédéfinis sont utilisés par ce et d’autres classes System.Globalization dans l’espace de noms.Certain predefined culture names and identifiers are used by this and other classes in the System.Globalization namespace. Pour obtenir des informations détaillées sur la culture des systèmes Windows, consultez la colonne balise de langue dans la liste des noms de langue/région pris en charge par Windows.For detailed culture information for Windows systems, see the Language tag column in the list of language/region names supported by Windows. Les noms de culture respectent la norme définie par BCP 47.Culture names follow the standard defined by BCP 47.

N’oubliez pas que les noms et les identificateurs de culture ne représentent qu’un sous-ensemble de cultures qui se trouvent sur un ordinateur particulier.Remember that the culture names and identifiers represent only a subset of cultures that can be found on a particular computer. Les versions ou les Service Packs Windows peuvent modifier les cultures disponibles.Windows versions or service packs can change the available cultures. Les applications ajoutent des cultures CultureAndRegionInfoBuilder personnalisées à l’aide de la classe.Applications add custom cultures using the CultureAndRegionInfoBuilder class. Les utilisateurs ajoutent leurs propres cultures personnalisées à l’aide de l’outil Microsoft locale Builder.Users add their own custom cultures using the Microsoft Locale Builder tool. Microsoft locale Builder est écrit en code managé à l’aide CultureAndRegionInfoBuilder de la classe.Microsoft Locale Builder is written in managed code using the CultureAndRegionInfoBuilder class.

Plusieurs noms distincts sont étroitement associés à une culture, notamment les noms associés aux membres de classe suivants :Several distinct names are closely associated with a culture, notably the names associated with the following class members:

Cultures invariantes, neutres et spécifiquesInvariant, neutral, and specific cultures

Les cultures sont généralement regroupées en trois ensembles : cultures invariantes, cultures neutres et cultures spécifiques.The cultures are generally grouped into three sets: invariant cultures, neutral cultures, and specific cultures.

Une culture dite indifférente est indépendante de la culture.An invariant culture is culture-insensitive. Votre application spécifie la culture dite indifférente par nom à l’aide d’une chaîne vide ("") ou de son identificateur.Your application specifies the invariant culture by name using an empty string ("") or by its identifier. InvariantCulturedéfinit une instance de la culture dite indifférente.InvariantCulture defines an instance of the invariant culture. Il est associé à la langue anglaise, mais pas à un pays ou une région.It is associated with the English language but not with any country/region. Elle est utilisée dans la plupart des méthodes de Globalization l’espace de noms qui requièrent une culture.It is used in almost any method in the Globalization namespace that requires a culture.

Une culture neutre est une culture associée à une langue, mais pas à un pays ou une région.A neutral culture is a culture that is associated with a language but not with a country/region. Une culture spécifique est une culture associée à une langue et à un pays/une région.A specific culture is a culture that is associated with a language and a country/region. Par exemple, fr est le nom neutre pour la culture français et fr-FR est le nom de la culture français (France) spécifique.For example, fr is the neutral name for the French culture, and fr-FR is the name of the specific French (France) culture. Notez que le chinois (simplifié) et le chinois (traditionnel) sont également considérés comme des cultures neutres.Note that Chinese (Simplified) and Chinese (Traditional) are also considered neutral cultures.

La création d’une instance CompareInfo d’une classe pour une culture neutre n’est pas recommandée, car les données qu’elle contient sont arbitraires.Creating an instance of a CompareInfo class for a neutral culture is not recommended because the data it contains is arbitrary. Pour afficher et trier des données, spécifiez la langue et la région.To display and sort data, specify both the language and region. En outre, la Name propriété d’un CompareInfo objet créé pour une culture neutre retourne uniquement le pays et n’inclut pas la région.Additionally, the Name property of a CompareInfo object created for a neutral culture returns only the country and does not include the region.

Les cultures définies ont une hiérarchie dans laquelle le parent d’une culture spécifique est une culture neutre et le parent d’une culture neutre est la culture dite indifférente.The defined cultures have a hierarchy in which the parent of a specific culture is a neutral culture and the parent of a neutral culture is the invariant culture. La Parent propriété contient la culture neutre associée à une culture spécifique.The Parent property contains the neutral culture associated with a specific culture. Les cultures personnalisées doivent Parent définir la propriété en conformité avec ce modèle.Custom cultures should define the Parent property in conformance with this pattern.

Si les ressources d’une culture spécifique ne sont pas disponibles dans le système d’exploitation, les ressources de la culture neutre associée sont utilisées.If the resources for a specific culture are not available in the operating system, the resources for the associated neutral culture are used. Si les ressources de la culture neutre ne sont pas disponibles, les ressources incorporées dans l’assembly principal sont utilisées.If the resources for the neutral culture are not available, the resources embedded in the main assembly are used. Pour plus d’informations sur le processus de secours pour les ressources, consultez empaquetage et déploiement de ressources.For more information on the resource fallback process, see Packaging and Deploying Resources.

La liste des paramètres régionaux dans l’API Windows est légèrement différente de la liste des cultures prises en charge par l' .NET Framework.The list of locales in the Windows API is slightly different from the list of cultures supported by the .NET Framework. Si l’interopérabilité avec Windows est requise, par exemple par le biais du mécanisme p/Invoke, l’application doit utiliser une culture spécifique définie pour le système d’exploitation.If interoperability with Windows is required, for example, through the p/invoke mechanism, the application should use a specific culture that is defined for the operating system. L’utilisation de la culture spécifique garantit la cohérence avec les paramètres régionaux Windows équivalents, identifiés par un identificateur de paramètres régionaux identique LCIDà.Use of the specific culture ensures consistency with the equivalent Windows locale, which is identified with a locale identifier that is the same as LCID.

Un DateTimeFormatInfo ou un NumberFormatInfo peut être créé uniquement pour la culture dite indifférente ou pour des cultures spécifiques, et non pour des cultures neutres.A DateTimeFormatInfo or a NumberFormatInfo can be created only for the invariant culture or for specific cultures, not for neutral cultures.

Si DateTimeFormatInfo.Calendar DateTimeFormatInfo.GetAbbreviatedEraName DateTimeFormatInfo.NativeCalendarName DateTimeFormatInfo.GetEraNameest, Thread.CurrentCulture mais que n’a pas la valeur zh-TW, alors, et retournent une chaîne vide (""). TaiwanCalendarIf DateTimeFormatInfo.Calendar is the TaiwanCalendar but the Thread.CurrentCulture is not set to zh-TW, then DateTimeFormatInfo.NativeCalendarName, DateTimeFormatInfo.GetEraName, and DateTimeFormatInfo.GetAbbreviatedEraName return an empty string ("").

Cultures personnaliséesCustom cultures

Outre les cultures prédéfinies prises en charge par le système d’exploitation Windows et le .NET Framework, le .NET Framework prend en charge trois types de cultures personnalisées :In addition to the predefined cultures supported by the Windows operating system and the .NET Framework, the .NET Framework supports three types of custom cultures:

  • Nouvelles cultures qui complètent les cultures disponibles dans Windows ou le .NET Framework.New cultures that supplement the cultures available in Windows or the .NET Framework. Par exemple, une application peut installer un CultureInfo objet qui représente la culture FJ-FJ (ou Fijan (Fidji)) sur un système.For example, an application could install a CultureInfo object that represents the fj-FJ (or Fijan (Fiji)) culture on a system.

  • Les cultures de remplacement dont les propriétés sont différentes des propriétés des cultures standard prises en charge par Windows et le .NET Framework.Replacement cultures whose properties are different from the properties of the standard cultures supported by Windows and the .NET Framework.

  • Cultures standard avec substitutions utilisateur.Standard cultures with user overrides. L’utilisateur peut utiliser l’application région et langue du panneau de configuration pour personnaliser les valeurs de propriété d’une culture existante.The user can use the Region and Language application in Control Panel to customize an existing culture's property values.

Notes

Vous pouvez utiliser la CultureAndRegionInfoBuilder classe pour définir, enregistrer et enregistrer des cultures personnalisées qui complètent ou remplacent des cultures existantes.You can use the CultureAndRegionInfoBuilder class to define, save, and register custom cultures that either supplement or replace existing cultures. La CultureAndRegionInfoBuilder.Save méthode crée un fichier LDML (locale Data Markup Language) qui peut être utilisé pour installer une culture personnalisée sur les systèmes cibles.The CultureAndRegionInfoBuilder.Save method creates a Locale Data Markup Language (LDML) file that can be used to install a custom culture on target systems. Pour obtenir des informations pas à pas sur l' CultureAndRegionInfoBuilder utilisation de la classe pour créer une culture nouvelle ou de CultureAndRegionInfoBuilder remplacement, consultez la rubrique de la classe.For step-by step information on using the CultureAndRegionInfoBuilder class to create a new or replacement culture, see the CultureAndRegionInfoBuilder class topic.

Étant donné que le .NET Framework prend en charge les cultures personnalisées, vous devez tenir compte des éléments suivants lorsque vous utilisez des données spécifiques à la culture :Because the .NET Framework supports custom cultures, you should consider the following when working with culture-specific data:

  • Les cultures personnalisées peuvent avoir des valeurs qui dépassent les plages des cultures prédéfinies.Custom cultures can have values that exceed the ranges of the predefined cultures. Par exemple, certaines cultures ont des noms de mois anormalement longs, des formats de date ou d’heure inattendus ou d’autres données inhabituelles.For example, some cultures have unusually long month names, unexpected date or time formats, or other unusual data.

  • Lorsque vous affichez des données spécifiques à la culture dans l’interface utilisateur, vous devez respecter les personnalisations de l’utilisateur. par exemple, l’utilisateur peut souhaiter une horloge de 24 heures ou un format de date AAAAMMJJ.When you display culture-specific data in the user interface, you should respect the user's customizations; for example, the user might want a 24-hour clock or a yyyyMMdd date format.

  • N’oubliez pas que les cultures personnalisées remplacent les valeurs par défaut.Remember that custom cultures override default values. Par conséquent, vous ne pouvez pas considérer les données de culture comme stables.Therefore, you cannot consider culture data to be stable. Les noms de pays, les formats de nombre et de date et les orthographes peuvent changer à l’avenir.Country names, number and date formats, and spellings may change in the future. Si vous souhaitez sérialiser des données dépendantes de la culture, telles que des chaînes de date et d’heure, à passer aux fonctions d’analyse de date et d’heure, vous devez utiliser la culture dite indifférente ou un spécifique.If you want to serialize culture-sensitive data such as date and time strings to be passed to the date and time parsing functions, you should use the invariant culture or a specific .

La CultureTypes valeur de propriété des cultures personnalisées installées sur un System.Globalization.CultureTypes système comprend l’indicateur et une LCID valeur de LOCALE_CUSTOM_UNSPECIFIED propriété (0x1000 ou 4096) est assignée aux cultures personnalisées.The CultureTypes property value of custom cultures installed on a system includes the System.Globalization.CultureTypes flag, and custom cultures are assigned an LCID property value of LOCALE_CUSTOM_UNSPECIFIED (0x1000, or 4096). Notez que, à partir de Windows 10, cette valeur est également assignée aux cultures définies par le système qui n’ont pas de données culturelles complètes.Note that, starting with Windows 10, this value is also assigned to system-defined cultures that lack complete cultural data.

CultureInfo et données culturellesCultureInfo and cultural data

.NET dérive ses données culturelles d’une variété de sources, en fonction de l’implémentation, de la plateforme et de la version :.NET derives its cultural data from a one of a variety of sources, depending on implementation, platform, and version:

  • Dans .NET Framework 3,5 et versions antérieures, les données culturelles sont fournies par le système d’exploitation Windows et le .NET Framework.In .NET Framework 3.5 and earlier versions, cultural data is provided by both the Windows operating system and the .NET Framework.

  • Dans .NET Framework 4 et versions ultérieures, les données culturelles sont fournies par le système d’exploitation Windows.In .NET Framework 4 and later versions, cultural data is provided by the Windows operating system.

  • Dans toutes les versions de .NET Core s’exécutant sur Windows, les données culturelles sont fournies par le système d’exploitation Windows.In all versions of .NET Core running on Windows, cultural data is provided by the Windows operating system.

  • Dans toutes les versions de .NET Core s’exécutant sur des plateformes UNIX, les données culturelles sont fournies par la bibliothèque ICU (International Components for Unicode).In all versions of .NET Core running on Unix platforms, cultural data is provided by the International Components for Unicode (ICU) Library. La version spécifique de la bibliothèque ICU dépend du système d’exploitation individuel.The specific version of the ICU Library depends on the individual operating system.

Pour cette raison, une culture disponible sur une implémentation, une plateforme ou une version .NET particulière peut ne pas être disponible sur une implémentation, une plateforme ou une version .NET différente.Because of this, a culture available on a particular .NET implementation, platform, or version may not be available on a different .NET implementation, platform, or version.

Certains CultureInfo objets varient en fonction de la plateforme sous-jacente.Some CultureInfo objects differ depending on the underlying platform. En particulier, « zh-CN », ou chinois (simplifié, Chine) et zh-TW, ou chinois (traditionnel, Taïwan) sont des cultures disponibles sur les systèmes Windows, mais il s’agit de cultures avec alias sur les systèmes UNIX.In particular, "zh-CN", or Chinese (Simplified, China) and zh-TW, or Chinese (Traditional, Taiwan), are available cultures on Windows systems, but they are aliased cultures on Unix systems. « zh-CN » est un alias pour la culture « zh-Hans-CN » et « zh-TW » est un alias pour la culture « zh-Hant-TW »."zh-CN" is an alias for the "zh-Hans-CN" culture, and "zh-TW" is an alias for the "zh-Hant-TW" culture. Les cultures avec alias ne sont pas retournées GetCultures par les appels à la méthode et peuvent avoir des Parent valeurs de propriété différentes, y compris des cultures différentes, que leurs équivalents Windows.Aliased cultures are not returned by calls to the GetCultures method and may have different property values, including different Parent cultures, than their Windows counterparts. Pour les cultures zh-CN et zh-TW, ces differenes sont les suivantes :For the zh-CN and zh-TW cultures, these differenes include the following:

  • Sur les systèmes Windows, la culture parente de la culture « zh-CN » est « zh-Hans » et la culture parente de la culture « zh-TW » est « zh-Hant ».On Windows systems, the parent culture of the "zh-CN" culture is "zh-Hans", and the parent culture of the "zh-TW" culture is "zh-Hant". La culture parente de ces deux cultures est « zh ».The parent culture of both these cultures is "zh". Sur les systèmes UNIX, les parents des deux cultures sont « zh ».On Unix systems, the parents of both cultures are "zh". Cela signifie que, si vous ne fournissez pas de ressources spécifiques à la culture pour les cultures « zh-CN » ou « zh-TW », mais que vous fournissez une ressource pour la culture neutre « zh-Hans » ou « zh-Hant », votre application chargera les ressources pour la culture neutre sur Windows, mais pas sous UNIX .This means that, if you don't provide culture-specific resources for the "zh-CN" or "zh-TW" cultures but do provide a resources for the neutral "zh-Hans" or "zh-Hant" culture, your application will load the resources for the neutral culture on Windows but not on Unix. Sur les systèmes UNIX, vous devez définir explicitement le type CurrentUICulture de thread sur « zh-Hans » ou « zh-Hant ».On Unix systems, you must explicitly set the thread's CurrentUICulture to either "zh-Hans" or "zh-Hant".

  • Sur les systèmes Windows, CultureInfo.Equals l’appel de sur une instance qui représente la culture « zh-CN » et la transmission d’une instance « zh-Hans true-CN » retourne.On Windows systems, calling CultureInfo.Equals on an instance that represents the "zh-CN" culture and passing it a "zh-Hans-CN" instance returns true. Sur les systèmes UNIX, l’appel de falseméthode retourne.On Unix systems, the method call returns false. Ce comportement s’applique également à Equals l’appel de sur une instance « CultureInfo zh-TW » et en lui transmettant une instance « zh-Hant-TW ».This behavior also applies to calling Equals on a "zh-TW" CultureInfo instance and passing it a "zh-Hant-Tw" instance.

Données de culture dynamiqueDynamic culture data

À l’exception de la culture dite indifférente, les données de culture sont dynamiques.Except for the invariant culture, culture data is dynamic. Cela est vrai même pour les cultures prédéfinies.This is true even for the predefined cultures. Par exemple, les pays ou les régions adoptent de nouvelles devises, modifient leur orthographe de mots, ou modifient leur calendrier préféré, et les définitions de culture changent pour effectuer le suivi.For example, countries or regions adopt new currencies, change their spellings of words, or change their preferred calendar, and culture definitions change to track this. Les cultures personnalisées peuvent faire l’objet de modifications sans préavis, et toute culture spécifique peut être substituée par une culture de remplacement personnalisée.Custom cultures are subject to change without notice, and any specific culture might be overridden by a custom replacement culture. En outre, comme indiqué ci-dessous, un utilisateur individuel peut remplacer les préférences culturelles.Also, as discussed below, an individual user can override cultural preferences. Les applications doivent toujours obtenir des données de culture au moment de l’exécution.Applications should always obtain culture data at run time.

Attention

Lors de l’enregistrement de données, votre application doit utiliser la culture dite indifférente, un format binaire ou un format spécifique indépendant de la culture.When saving data, your application should use the invariant culture, a binary format, or a specific culture-independent format. Les données enregistrées en fonction des valeurs actuelles associées à une culture particulière, à l’exception de la culture dite indifférente, peuvent devenir illisibles ou peuvent changer de façon à ce que la culture change.Data saved according to the current values associated with a particular culture, other than the invariant culture, might become unreadable or might change in meaning if that culture changes.

La culture actuelle et la culture d’interface utilisateur actuelleThe current culture and current UI culture

Chaque thread dans une application .NET a une culture actuelle et une culture d’interface utilisateur actuelle.Every thread in a .NET application has a current culture and a current UI culture. La culture actuelle détermine les conventions de mise en forme pour les dates, les heures, les nombres et les valeurs monétaires, l’ordre de tri du texte, les conventions de casse et les façons dont les chaînes sont comparées.The current culture determines the formatting conventions for dates, times, numbers, and currency values, the sort order of text, casing conventions, and the ways in which strings are compared. La culture d’interface utilisateur actuelle est utilisée pour récupérer des ressources spécifiques à la culture au moment de l’exécution.The current UI culture is used to retrieve culture-specific resources at runtime.

Notes

Pour plus d’informations sur la façon dont la culture d’interface utilisateur actuelle et actuelle est déterminée en fonction du thread, consultez la section culture et threads .For information on how the current and current UI culture is determined on a per-thread basis, see the Culture and threads section. Pour plus d’informations sur la façon dont la culture d’interface utilisateur actuelle et actuelle est déterminée sur les threads qui s’exécutent dans un nouveau domaine d’application, et sur les threads qui franchissent les limites du domaine d’application, consultez la section culture et domaines d’application .For information on how the current and current UI culture is determined on threads executing in a new application domain, and on threads that cross application domain boundaries, see the Culture and application domains section. Pour plus d’informations sur la façon dont le actuel et le actuel sont déterminés sur les threads effectuant des opérations asynchrones basées sur des tâches, consultez la section culture et opérations asynchrones basées sur des tâches .For information on how the current and current is determined on threads performing task-based asynchronous operations, see the Culture and task-based asynchronous operations section.

Pour obtenir des informations plus détaillées sur la culture actuelle, CultureInfo.CurrentCulture consultez la rubrique relative à la propriété.For more detailed information on the current culture, see the CultureInfo.CurrentCulture property topic. Pour plus d’informations sur la culture d’interface utilisateur actuelle, CultureInfo.CurrentUICulture consultez la rubrique relative à la propriété.For more detailed information on the current UI culture, see the CultureInfo.CurrentUICulture property topic.

Récupération des cultures actuelles et actuelles de l’interface utilisateurRetrieving the current and current UI cultures

Vous pouvez obtenir un CultureInfo objet qui représente la culture actuelle de l’une des deux manières suivantes :You can get a CultureInfo object that represents the current culture in either of two ways:

L’exemple suivant récupère les deux valeurs de propriété, les compare pour indiquer qu’elles sont égales et affiche le nom de la culture actuelle.The following example retrieves both property values, compares them to show that they are equal, and displays the name of the current culture.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      CultureInfo culture1 = CultureInfo.CurrentCulture;
      CultureInfo culture2 = Thread.CurrentThread.CurrentCulture;
      Console.WriteLine("The current culture is {0}", culture1.Name);
      Console.WriteLine("The two CultureInfo objects are equal: {0}",
                        culture1 == culture2);
   }
}
// The example displays output like the following:
//     The current culture is en-US
//     The two CultureInfo objects are equal: True
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Dim culture1 As CultureInfo = CultureInfo.CurrentCulture
      Dim culture2 As CultureInfo = Thread.CurrentThread.CurrentCulture
      Console.WriteLine("The current culture is {0}", culture1.Name)
      Console.WriteLine("The two CultureInfo objects are equal: {0}",
                        culture1.Equals(culture2))
   End Sub
End Module
' The example displays output like the following:
'     The current culture is en-US
'     The two CultureInfo objects are equal: True

Vous pouvez obtenir un CultureInfo objet qui représente la culture d’interface utilisateur actuelle de l’une des deux manières suivantes :You can get a CultureInfo object that represents the current UI culture in either of two ways:

L’exemple suivant récupère les deux valeurs de propriété, les compare pour indiquer qu’elles sont égales et affiche le nom de la culture d’interface utilisateur actuelle.The following example retrieves both property values, compares them to show that they are equal, and displays the name of the current UI culture.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      CultureInfo uiCulture1 = CultureInfo.CurrentUICulture;
      CultureInfo uiCulture2 = Thread.CurrentThread.CurrentUICulture;
      Console.WriteLine("The current UI culture is {0}", uiCulture1.Name);
      Console.WriteLine("The two CultureInfo objects are equal: {0}",
                        uiCulture1 == uiCulture2);
   }
}
// The example displays output like the following:
//     The current UI culture is en-US
//     The two CultureInfo objects are equal: True
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Dim uiCulture1 As CultureInfo = CultureInfo.CurrentUICulture
      Dim uiCulture2 As CultureInfo = Thread.CurrentThread.CurrentUICulture
      Console.WriteLine("The current UI culture is {0}", uiCulture1.Name)
      Console.WriteLine("The two CultureInfo objects are equal: {0}",
                        uiCulture1.Equals(uiCulture2))
   End Sub
End Module
' The example displays output like the following:
'     The current UI culture is en-US
'     The two CultureInfo objects are equal: True

Définition des cultures actuelles et actuelles de l’interface utilisateurSetting the current and current UI cultures

Pour modifier la culture et la culture d’interface utilisateur d’un thread, procédez comme suit :To change the culture and UI culture of a thread, do the following:

  1. Instanciez CultureInfo un objet qui représente cette culture en appelant CultureInfo un constructeur de classe et en lui passant le nom de la culture.Instantiate a CultureInfo object that represents that culture by calling a CultureInfo class constructor and passing it the name of the culture. Le CultureInfo(String) constructeur instancie un CultureInfo objet qui reflète les substitutions de l’utilisateur si la nouvelle culture est la même que la culture Windows en cours.The CultureInfo(String) constructor instantiates a CultureInfo object that reflects user overrides if the new culture is the same as the current Windows culture. Le CultureInfo(String, Boolean) constructeur vous permet de spécifier si l' CultureInfo objet qui vient d’être instancié reflète les substitutions de l’utilisateur si la nouvelle culture est la même que la culture Windows en cours.The CultureInfo(String, Boolean) constructor allows you to specify whether the newly instantiated CultureInfo object reflects user overrides if the new culture is the same as the current Windows culture.

  2. Assignez l' CultureInfo objet à CultureInfo.CurrentUICulture la CultureInfo.CurrentCulture propriété ou sur .net Core et .NET Framework 4,6 et versions ultérieures.Assign the CultureInfo object to the CultureInfo.CurrentCulture or CultureInfo.CurrentUICulture property on .NET Core and .NET Framework 4.6 and later versions. (Sur .NET Framework 4.5.2 et les versions antérieures, youc assigner l' CultureInfo objet à la Thread.CurrentCulture propriété ou Thread.CurrentUICulture .)(On .NET Framework 4.5.2 and earlier versions, youc an assign the CultureInfo object to the Thread.CurrentCulture or Thread.CurrentUICulture property.)

L’exemple suivant récupère la culture actuelle.The following example retrieves the current culture. S’il s’agit d’une valeur autre que la culture français (France), la culture actuelle est remplacée par le français (France).If it is anything other than the French (France) culture, it changes the current culture to French (France). Dans le cas contraire, elle remplace la culture actuelle par le français (Luxembourg).Otherwise, it changes the current culture to French (Luxembourg).

using System;
using System.Globalization;

public class Example
{
   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

L’exemple suivant récupère la culture actuelle.The following example retrieves the current culture. S’il s’agit d’une autre culture slovène (Slovénie), la culture actuelle est remplacée par la valeur slovène (Slovénie).If it is anything other the Slovenian (Slovenia) culture, it changes the current culture to Slovenian (Slovenia). Dans le cas contraire, il remplace la culture actuelle par croate (Croatie).Otherwise, it changes the current culture to Croatian (Croatia).

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo current = CultureInfo.CurrentUICulture;
      Console.WriteLine("The current UI culture is {0}", current.Name);
      CultureInfo newUICulture;
      if (current.Name.Equals("sl-SI"))
         newUICulture = new CultureInfo("hr-HR");
      else   
         newUICulture = new CultureInfo("sl-SI");
      
      CultureInfo.CurrentUICulture = newUICulture;
      Console.WriteLine("The current UI culture is now {0}", 
                        CultureInfo.CurrentUICulture.Name);   
   }
}
// The example displays output like the following:
//     The current UI culture is en-US
//     The current UI culture is now sl-SI
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim current As CultureInfo = CultureInfo.CurrentUICulture
      Console.WriteLine("The current UI culture is {0}", current.Name)
      Dim newUICulture As CultureInfo
      If current.Name.Equals("sl-SI") Then
         newUICulture = New CultureInfo("hr-HR")
      Else   
         newUICulture = new CultureInfo("sl-SI")
      End If
      
      CultureInfo.CurrentUICulture = newUICulture
      Console.WriteLine("The current UI culture is now {0}", 
                        CultureInfo.CurrentUICulture.Name)   
   End Sub
End Module
' The example displays output like the following:
'     The current UI culture is en-US
'     The current UI culture is now sl-SI

Obtention de toutes les culturesGetting all cultures

Vous pouvez récupérer des catégories spécifiques à un tableau de cultures ou de toutes les cultures disponibles sur l’ordinateur local en GetCultures appelant la méthode.You can retrieve an array specific categories of cultures or of all the cultures available on the local computer by calling the GetCultures method. Par exemple, vous pouvez récupérer des cultures personnalisées, des cultures spécifiques ou des cultures neutres seules ou en combinaison.For example, you can retrieve custom cultures, specific cultures, or neutral cultures either alone or in combination.

L’exemple suivant appelle la GetCultures méthode deux fois, d’abord System.Globalization.CultureTypes avec le membre de l’énumération pour récupérer toutes les cultures System.Globalization.CultureTypes personnalisées, puis avec le membre de l’énumération pour récupérer toutes les cultures de remplacement.The following example calls the GetCultures method twice, first with the System.Globalization.CultureTypes enumeration member to retrieve all custom cultures, and then with the System.Globalization.CultureTypes enumeration member to retrieve all replacement cultures.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Get all custom cultures.
      CultureInfo[] custom = CultureInfo.GetCultures(CultureTypes.UserCustomCulture);
      if (custom.Length == 0) { 
         Console.WriteLine("There are no user-defined custom cultures.");
      }
      else {
         Console.WriteLine("Custom cultures:");
         foreach (var culture in custom) 
            Console.WriteLine("   {0} -- {1}", culture.Name, culture.DisplayName);    
      }
      Console.WriteLine();
      
      // Get all replacement cultures.
      CultureInfo[] replacements = CultureInfo.GetCultures(CultureTypes.ReplacementCultures);
      if (replacements.Length == 0) { 
         Console.WriteLine("There are no replacement cultures.");
      }                                             
      else {
         Console.WriteLine("Replacement cultures:");
         foreach (var culture in replacements) 
            Console.WriteLine("   {0} -- {1}", culture.Name, culture.DisplayName);    
      }
      Console.WriteLine();
   }
}
// The example displays output like the following:
//     Custom cultures:
//        x-en-US-sample -- English (United States)
//        fj-FJ -- Boumaa Fijian (Viti)
//     
//     There are no replacement cultures.
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Get all custom cultures.
      Dim custom() As CultureInfo = CultureInfo.GetCultures(CultureTypes.UserCustomCulture)
      If custom.Length = 0 Then 
         Console.WriteLine("There are no user-defined custom cultures.")
      Else
         Console.WriteLine("Custom cultures:")
         For Each culture In custom 
            Console.WriteLine("   {0} -- {1}", culture.Name, culture.DisplayName)
         Next       
      End If
      Console.WriteLine()
      
      ' Get all replacement cultures.
      Dim replacements() As CultureInfo = CultureInfo.GetCultures(CultureTypes.ReplacementCultures)
      If replacements.Length = 0 Then 
         Console.WriteLine("There are no replacement cultures.")
      Else 
         Console.WriteLine("Replacement cultures:")
         For Each culture in replacements 
            Console.WriteLine("   {0} -- {1}", culture.Name, culture.DisplayName)    
         Next
      End If
      Console.WriteLine()
   End Sub
End Module
' The example displays output like the following:
'     Custom cultures:
'        x-en-US-sample -- English (United States)
'        fj-FJ -- Boumaa Fijian (Viti)
'     
'     There are no replacement cultures.

Culture et threadsCulture and threads

Lorsqu’un nouveau thread d’application est démarré, sa culture actuelle et sa culture d’interface utilisateur actuelle sont définies par la culture système actuelle, et non par la culture du thread actuel.When a new application thread is started, its current culture and current UI culture are defined by the current system culture, and not by the current thread culture. L'exemple suivant illustre la différence.The following example illustrates the difference. Il définit la culture actuelle et la culture d’interface utilisateur actuelle d’un thread d’application sur la culture française (France) (fr-FR).It sets the current culture and current UI culture of an application thread to the French (France) culture (fr-FR). Si la culture actuelle est déjà fr-FR, l’exemple la définit sur la culture anglais (États-Unis) (en-US).If the current culture is already fr-FR, the example sets it to the English (United States) culture (en-US). Il affiche trois nombres aléatoires en tant que valeurs monétaires, puis crée un nouveau thread, qui, à son tour, affiche trois nombres plus aléatoires en tant que valeurs monétaires.It displays three random numbers as currency values and then creates a new thread, which, in turn, displays three more random numbers as currency values. Toutefois, comme le montre la sortie de l’exemple, les valeurs monétaires affichées par le nouveau thread ne reflètent pas les conventions de mise en forme de la culture française (France), contrairement à la sortie du thread d’application principal.But as the output from the example shows, the currency values displayed by the new thread do not reflect the formatting conventions of the French (France) culture, unlike the output from the main application thread.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   static Random rnd = new Random();
   
   public static void Main()
   {
      if (Thread.CurrentThread.CurrentCulture.Name != "fr-FR") {
         // If current culture is not fr-FR, set culture to fr-FR.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");
      }
      else {
         // Set culture to en-US.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("en-US");
      }
      ThreadProc();
          
      Thread worker = new Thread(ThreadProc);
      worker.Name = "WorkerThread";
      worker.Start();
   }
   
   private static void DisplayThreadInfo()
   {
      Console.WriteLine("\nCurrent Thread Name: '{0}'", 
                        Thread.CurrentThread.Name);
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name);                        
   }
   
   private static void DisplayValues()
   {
      // Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:");
      for (int ctr = 0; ctr <= 3; ctr++)
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10);                        
   }
   
   private static void ThreadProc()
   {
      DisplayThreadInfo();
      DisplayValues();
   }
}
// The example displays output similar to the following:
//       Current Thread Name: ''
//       Current Thread Culture/UI Culture: fr-FR/fr-FR
//       Some currency values:
//          8,11 €
//          1,48 €
//          8,99 €
//          9,04 €
//       
//       Current Thread Name: 'WorkerThread'
//       Current Thread Culture/UI Culture: en-US/en-US
//       Some currency values:
//          $6.72
//          $6.35
//          $2.90
//          $7.72
Imports System.Globalization
Imports System.Threading

Module Example
   Dim rnd As New Random()
   
   Public Sub Main()
      If Thread.CurrentThread.CurrentCulture.Name <> "fr-FR" Then
         ' If current culture is not fr-FR, set culture to fr-FR.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR")
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR")
      Else
         ' Set culture to en-US.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US")
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("en-US")
      End If
      ThreadProc()
          
       Dim worker As New Thread(AddressOf ThreadProc)
       worker.Name = "WorkerThread"
       worker.Start()
   End Sub
   
   Private Sub DisplayThreadInfo()
      Console.WriteLine()
      Console.WriteLine("Current Thread Name: '{0}'", 
                        Thread.CurrentThread.Name)
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name)                        
   End Sub
   
   Private Sub DisplayValues()
      ' Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:")
      For ctr As Integer = 0 To 3
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10)                        
      Next
   End Sub
   
   Private Sub ThreadProc()
      DisplayThreadInfo()
      DisplayValues()
   End Sub
End Module
' The example displays output similar to the following:
'       Current Thread Name: ''
'       Current Thread Culture/UI Culture: fr-FR/fr-FR
'       Some currency values:
'          8,11 €
'          1,48 €
'          8,99 €
'          9,04 €
'       
'       Current Thread Name: 'WorkerThread'
'       Current Thread Culture/UI Culture: en-US/en-US
'       Some currency values:
'          $6.72
'          $6.35
'          $2.90
'          $7.72

Dans les versions du .NET Framework avant le .NET Framework 4.5.NET Framework 4.5, la méthode la plus courante pour s’assurer que le thread d’application principal partage la même culture avec tous les autres threads de travail consiste à passer le nom de la culture CultureInfo à l’ensemble de l’application ou un objet qui représente la culture à l’ensemble de l' System.Threading.ParameterizedThreadStart application à un délégué.In versions of the .NET Framework before the .NET Framework 4.5.NET Framework 4.5, the most common way to ensure that the main application thread shares the same culture with all other worker threads is to pass either the name of the application-wide culture or a CultureInfo object that represents the application-wide culture to a System.Threading.ParameterizedThreadStart delegate. L’exemple suivant utilise cette approche pour s’assurer que les valeurs monétaires affichées par deux threads reflètent les conventions de mise en forme de la même culture.The following example uses this approach to ensure that the currency values displayed by two threads reflect the formatting conventions of the same culture.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   static Random rnd = new Random();
   
   public static void Main()
   {
      if (Thread.CurrentThread.CurrentCulture.Name != "fr-FR") {
         // If current culture is not fr-FR, set culture to fr-FR.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");
      }   
      else {
         // Set culture to en-US.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("en-US");
      }
      DisplayThreadInfo();
      DisplayValues();
          
       Thread worker = new Thread(Example.ThreadProc);
       worker.Name = "WorkerThread";
       worker.Start(Thread.CurrentThread.CurrentCulture);
   }
   
   private static void DisplayThreadInfo()
   {
      Console.WriteLine("\nCurrent Thread Name: '{0}'", 
                        Thread.CurrentThread.Name);
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name);                        
   }
   
   private static void DisplayValues()
   {
      // Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:");
      for (int ctr = 0; ctr <= 3; ctr++)
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10);                        
   }
   
   private static void ThreadProc(Object obj) 
   {
      Thread.CurrentThread.CurrentCulture = (CultureInfo) obj;
      Thread.CurrentThread.CurrentUICulture = (CultureInfo) obj;
      DisplayThreadInfo();
      DisplayValues();
   }
}
// The example displays output similar to the following:
//       Current Thread Name: ''
//       Current Thread Culture/UI Culture: fr-FR/fr-FR
//       Some currency values:
//          6,83 €
//          3,47 €
//          6,07 €
//          1,70 €
//       
//       Current Thread Name: 'WorkerThread'
//       Current Thread Culture/UI Culture: fr-FR/fr-FR
//       Some currency values:
//          9,54 €
//          9,50 €
//          0,58 €
//          6,91 €
Imports System.Globalization
Imports System.Threading

Module Example
   Dim rnd As New Random()
   
   Public Sub Main()
      If Thread.CurrentThread.CurrentCulture.Name <> "fr-FR" Then
         ' If current culture is not fr-FR, set culture to fr-FR.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR")
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR")
      Else
         ' Set culture to en-US.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US")
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("en-US")
      End If
      DisplayThreadInfo()
      DisplayValues()
          
       Dim worker As New Thread(AddressOf ThreadProc)
       worker.Name = "WorkerThread"
       worker.Start(Thread.CurrentThread.CurrentCulture)
   End Sub
   
   Private Sub DisplayThreadInfo()
      Console.WriteLine()
      Console.WriteLine("Current Thread Name: '{0}'", 
                        Thread.CurrentThread.Name)
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name)                        
   End Sub
   
   Private Sub DisplayValues()
      ' Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:")
      For ctr As Integer = 0 To 3
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10)                        
      Next
   End Sub
   
   Private Sub ThreadProc(obj As Object)
      Thread.CurrentThread.CurrentCulture = CType(obj, CultureInfo)
      Thread.CurrentThread.CurrentUICulture = CType(obj, CultureInfo)
      DisplayThreadInfo()
      DisplayValues()
   End Sub
End Module
' The example displays output similar to the following:
'       Current Thread Name: ''
'       Current Thread Culture/UI Culture: fr-FR/fr-FR
'       Some currency values:
'          6,83 €
'          3,47 €
'          6,07 €
'          1,70 €
'       
'       Current Thread Name: 'WorkerThread'
'       Current Thread Culture/UI Culture: fr-FR/fr-FR
'       Some currency values:
'          9,54 €
'          9,50 €
'          0,58 €
'          6,91 €

Vous pouvez définir la culture et la culture d’interface utilisateur des threads de pool de threads ThreadPool.QueueUserWorkItem(WaitCallback, Object) de la même manière en appelant la méthode.You can set the culture and UI culture of thread pool threads in a similar manner by calling the ThreadPool.QueueUserWorkItem(WaitCallback, Object) method.

À compter de CultureInfo DefaultThreadCurrentCulture DefaultThreadCurrentUICulture , vous pouvez définir plus directement la culture et la culture d’interface utilisateur de tous les threads d’un domaine d’application en assignant un objet qui représente cette culture aux propriétés et. .NET Framework 4.5.NET Framework 4.5Starting with the .NET Framework 4.5.NET Framework 4.5, you can set the culture and UI culture of all threads in an application domain more directly by assigning a CultureInfo object that represents that culture to the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties. L’exemple suivant utilise ces propriétés pour garantir que tous les threads dans le domaine d’application par défaut partagent la même culture.The following example uses these properties to ensure that all threads in the default application domain share the same culture.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   static Random rnd = new Random();
   
   public static void Main()
   {
      if (Thread.CurrentThread.CurrentCulture.Name != "fr-FR") {
         // If current culture is not fr-FR, set culture to fr-FR.
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");
      }   
      else {
         // Set culture to en-US.
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture("en-US");
      }
      ThreadProc();
          
      Thread worker = new Thread(Example.ThreadProc);
      worker.Name = "WorkerThread";
      worker.Start();
   }
   
   private static void DisplayThreadInfo()
   {
      Console.WriteLine("\nCurrent Thread Name: '{0}'", 
                        Thread.CurrentThread.Name);
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name);                        
   }
   
   private static void DisplayValues()
   {
      // Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:");
      for (int ctr = 0; ctr <= 3; ctr++)
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10);                        
   }
   
   private static void ThreadProc() 
   {
      DisplayThreadInfo();
      DisplayValues();
   }
}
// The example displays output similar to the following:
//       Current Thread Name: ''
//       Current Thread Culture/UI Culture: fr-FR/fr-FR
//       Some currency values:
//          6,83 €
//          3,47 €
//          6,07 €
//          1,70 €
//       
//       Current Thread Name: 'WorkerThread'
//       Current Thread Culture/UI Culture: fr-FR/fr-FR
//       Some currency values:
//          9,54 €
//          9,50 €
//          0,58 €
//          6,91 €
Imports System.Globalization
Imports System.Threading

Module Example
   Dim rnd As New Random()
   
   Public Sub Main()
      If Thread.CurrentThread.CurrentCulture.Name <> "fr-FR" Then
         ' If current culture is not fr-FR, set culture to fr-FR.
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR")
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR")
      Else
         ' Set culture to en-US.
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("en-US")
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture("en-US")
      End If
      ThreadProc()

       Dim worker As New Thread(AddressOf ThreadProc)
       worker.Name = "WorkerThread"
       worker.Start()
   End Sub
   
   Private Sub DisplayThreadInfo()
      Console.WriteLine()
      Console.WriteLine("Current Thread Name: '{0}'", 
                        Thread.CurrentThread.Name)
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name)                        
   End Sub
   
   Private Sub DisplayValues()
      ' Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:")
      For ctr As Integer = 0 To 3
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10)                        
      Next
   End Sub
   
   Private Sub ThreadProc()
      DisplayThreadInfo()
      DisplayValues()
   End Sub
End Module
' The example displays output similar to the following:
'       Current Thread Name: ''
'       Current Thread Culture/UI Culture: fr-FR/fr-FR
'       Some currency values:
'          6,83 €
'          3,47 €
'          6,07 €
'          1,70 €
'       
'       Current Thread Name: 'WorkerThread'
'       Current Thread Culture/UI Culture: fr-FR/fr-FR
'       Some currency values:
'          9,54 €
'          9,50 €
'          0,58 €
'          6,91 €

Avertissement

Bien que DefaultThreadCurrentCulture les DefaultThreadCurrentUICulture propriétés et soient des membres statiques, elles définissent la culture par défaut et la culture d’interface utilisateur par défaut uniquement pour le domaine d’application actuel au moment où ces valeurs de propriété sont définies.Although the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties are static members, they define the default culture and default UI culture only for the application domain that is current at the time these property values are set. Pour plus d’informations, consultez la section suivante, culture et domaines d’application.For more information, see the next section, Culture and application domains.

Quand vous assignez des DefaultThreadCurrentCulture valeurs DefaultThreadCurrentUICulture aux propriétés et, la culture et la culture d’interface utilisateur des threads dans le domaine d’application changent également si une culture n’a pas été explicitement assignée.When you assign values to the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties, the culture and UI culture of the threads in the application domain also change if they have not explicitly been assigned a culture. Toutefois, ces threads reflètent les nouveaux paramètres de culture uniquement lorsqu’ils s’exécutent dans le domaine d’application actuel.However, these threads reflect the new culture settings only while they execute in the current application domain. Si ces threads s’exécutent dans un autre domaine d’application, leur culture devient la culture par défaut définie pour ce domaine d’application.If these threads execute in another application domain, their culture becomes the default culture defined for that application domain. Par conséquent, nous vous recommandons de toujours définir la culture du thread d’application principal et de ne pas utiliser les propriétés DefaultThreadCurrentCulture et DefaultThreadCurrentUICulture pour le modifier.As a result, we recommend that you always set the culture of the main application thread, and not rely on the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties to change it.

Culture et domaines d’applicationCulture and application domains

DefaultThreadCurrentCultureet DefaultThreadCurrentUICulture sont des propriétés statiques qui définissent explicitement une culture par défaut pour le domaine d’application qui est actuel lorsque la valeur de propriété est définie ou récupérée.DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture are static properties that explicitly define a default culture only for the application domain that is current when the property value is set or retrieved. L’exemple suivant définit la culture par défaut et la culture d’interface utilisateur par défaut dans le domaine d’application par défaut sur français ( AppDomainSetup France), AppDomainInitializer puis utilise la classe et le délégué pour définir la culture par défaut et la culture d’interface utilisateur dans un nouveau domaine d’application sur Russe (Russie).The following example sets the default culture and default UI culture in the default application domain to French (France), and then uses the AppDomainSetup class and the AppDomainInitializer delegate to set the default culture and UI culture in a new application domain to Russian (Russia). Un thread unique exécute ensuite deux méthodes dans chaque domaine d’application.A single thread then executes two methods in each application domain. Notez que la culture du thread et la culture d’interface utilisateur ne sont pas définies explicitement ; ils sont dérivés de la culture par défaut et de la culture d’interface utilisateur du domaine d’application dans lequel le thread s’exécute.Note that the thread's culture and UI culture are not explicitly set; they are derived from the default culture and UI culture of the application domain in which the thread is executing. Notez également que les DefaultThreadCurrentCulture propriétés DefaultThreadCurrentUICulture et retournent CultureInfo les valeurs par défaut du domaine d’application qui est actuel lorsque l’appel de méthode est effectué.Note also that the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties return the default CultureInfo values of the application domain that is current when the method call is made.

using System;
using System.Globalization;
using System.Reflection;
using System.Threading;

public class Example
{
   public static void Main()
   {
      // Set the default culture and display the current date in the current application domain.
      Info info1 = new Info();
      SetAppDomainCultures("fr-FR");
      
      // Create a second application domain.
      AppDomainSetup setup = new AppDomainSetup();
      setup.AppDomainInitializer = SetAppDomainCultures;
      setup.AppDomainInitializerArguments = new string[] { "ru-RU" };
      AppDomain domain = AppDomain.CreateDomain("Domain2", null, setup);
      // Create an Info object in the new application domain.
      Info info2 = (Info) domain.CreateInstanceAndUnwrap(typeof(Example).Assembly.FullName, 
                                                         "Info"); 

      // Execute methods in the two application domains.
      info2.DisplayDate();
      info2.DisplayCultures();
      
      info1.DisplayDate();
      info1.DisplayCultures();            
   }

   public static void SetAppDomainCultures(string[] names)
   {
      SetAppDomainCultures(names[0]);
   }
   
   public static void SetAppDomainCultures(string name)
   {
       try {
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture(name);
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture(name);
      }
      // If an exception occurs, we'll just fall back to the system default.
      catch (CultureNotFoundException) {
         return;
      }   
      catch (ArgumentException) {
         return;
      } 
   }
}

public class Info : MarshalByRefObject
{
   public void DisplayDate()
   {
      Console.WriteLine("Today is {0:D}", DateTime.Now);
   }
   
   public void DisplayCultures()
   {
      Console.WriteLine("Application domain is {0}", AppDomain.CurrentDomain.Id);
      Console.WriteLine("Default Culture: {0}", CultureInfo.DefaultThreadCurrentCulture);
      Console.WriteLine("Default UI Culture: {0}", CultureInfo.DefaultThreadCurrentUICulture);
   }
}
// The example displays the following output:
//       Today is 14 октября 2011 г.
//       Application domain is 2
//       Default Culture: ru-RU
//       Default UI Culture: ru-RU
//       Today is vendredi 14 octobre 2011
//       Application domain is 1
//       Default Culture: fr-FR
//       Default UI Culture: fr-FR
Imports System.Globalization
Imports System.Reflection
Imports System.Threading

Module Example
   Public Sub Main()
      ' Set the default culture and display the current date in the current application domain.
      Dim info1 As New Info()
      SetAppDomainCultures("fr-FR")
      
      ' Create a second application domain.
      Dim setup As New AppDomainSetup()
      setup.AppDomainInitializer = AddressOf SetAppDomainCultures
      setup.AppDomainInitializerArguments = { "ru-RU" }
      Dim domain As AppDomain = AppDomain.CreateDomain("Domain2", Nothing, setup)
      ' Create an Info object in the new application domain.
      Dim info2 As Info = CType(domain.CreateInstanceAndUnwrap(GetType(Example).Assembly.FullName, 
                                                               "Info"), Info) 

      ' Execute methods in the two application domains.
      info2.DisplayDate()
      info2.DisplayCultures()
      
      info1.DisplayDate()
      info1.DisplayCultures()            
   End Sub
   
   Public Sub SetAppDomainCultures(names() As String)
      SetAppDomainCultures(names(0))
   End Sub
   
   Public Sub SetAppDomainCultures(name As String)
       Try
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture(name)
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture(name)
      ' If an exception occurs, we'll just fall back to the system default.
      Catch e As CultureNotFoundException
         Return
      Catch e As ArgumentException
         Return
      End Try      
   End Sub
End Module

Public Class Info : Inherits MarshalByRefObject
   Public Sub DisplayDate()
      Console.WriteLine("Today is {0:D}", Date.Now)
   End Sub
   
   Public Sub DisplayCultures()
      Console.WriteLine("Application domain is {0}", AppDomain.CurrentDomain.Id)
      Console.WriteLine("Default Culture: {0}", CultureInfo.DefaultThreadCurrentCulture)
      Console.WriteLine("Default UI Culture: {0}", CultureInfo.DefaultThreadCurrentUICulture)
   End Sub
End Class
' The example displays the following output:
'       Today is 14 октября 2011 г.
'       Application domain is 2
'       Default Culture: ru-RU
'       Default UI Culture: ru-RU
'       Today is vendredi 14 octobre 2011
'       Application domain is 1
'       Default Culture: fr-FR
'       Default UI Culture: fr-FR

Pour plus d’informations sur les cultures et les domaines d’application, consultez la section « domaines d’application et threads » dans la rubrique domaines d’application .For more information about cultures and application domains, see the "Application Domains and Threads" section in the Application Domains topic.

Culture et opérations asynchrones basées sur des tâchesCulture and task-based asynchronous operations

Le modèle de programmation asynchrone basé sur des tâches utilise Task les objets et Task<TResult> pour exécuter de façon asynchrone des délégués sur des threads de pool de threads.The task-based asynchronous programming pattern uses Task and Task<TResult> objects to asynchronously execute delegates on thread pool threads. Le thread spécifique sur lequel une tâche particulière s’exécute n’est pas connu à l’avance, mais est uniquement déterminé au moment de l’exécution.The specific thread on which a particular task runs is not known in advance, but is determined only at runtime.

Pour les applications qui ciblent le ou versions ultérieures, la .NET Framework 4.6.NET Framework 4.6 culture fait partie du contexte d’une opération asynchrone.For apps that target the .NET Framework 4.6.NET Framework 4.6 or later versions, culture is part of an asynchronous operation's context. En d’autres termes, en commençant par les applications .NET Framework 4.6.NET Framework 4.6qui ciblent le, les opérations asynchrones héritent CurrentUICulture par défaut des valeurs CurrentCulture des propriétés et du thread à partir duquel elles sont lancées.In other words, starting with apps that target the .NET Framework 4.6.NET Framework 4.6, asynchronous operations by default inherit the values of the CurrentCulture and CurrentUICulture properties of the thread from which they are launched. Si la culture actuelle ou la culture d’interface utilisateur actuelle diffère de la culture du système, la culture actuelle franchit les limites de thread et devient la culture actuelle du thread de pool de threads qui exécute une opération asynchrone.If the current culture or current UI culture differs from the system culture, the current culture crosses thread boundaries and becomes the current culture of the thread pool thread that is executing an asynchronous operation.

L'exemple suivant illustre cette situation de façon simple.The following example provides a simple illustration. Elle utilise l' TargetFrameworkAttribute attribut pour .NET Framework 4.6.NET Framework 4.6cibler.It uses the TargetFrameworkAttribute attribute to target the .NET Framework 4.6.NET Framework 4.6. L’exemple définit un Func<TResult> délégué, formatDelegate, qui retourne des nombres mis en forme en tant que valeurs monétaires.The example defines a Func<TResult> delegate, formatDelegate, that returns some numbers formatted as currency values. L’exemple change la culture système actuelle en français (France) ou, si le français (France) est déjà la culture actuelle, l’anglais (États-Unis).The example changes the current system culture to either French (France) or, if French (France) is already the current culture, English (United States). Ensuite :It then:

  • Appelle le délégué directement afin qu’il s’exécute de façon synchrone sur le thread d’application principal.Invokes the delegate directly so that it runs synchronously on the main app thread.

  • Crée une tâche qui exécute le délégué de manière asynchrone sur un thread de pool de threads.Creates a task that executes the delegate asynchronously on a thread pool thread.

  • Crée une tâche qui exécute le délégué de façon synchrone sur le thread d’application principal en appelant Task.RunSynchronously la méthode.Creates a task that executes the delegate synchronously on the main app thread by calling the Task.RunSynchronously method.

Comme le montre la sortie de l’exemple, lorsque la culture actuelle est changée en français (France), la culture actuelle du thread à partir duquel les tâches sont appelées de façon asynchrone devient la culture actuelle pour cette opération asynchrone.As the output from the example shows, when the current culture is changed to French (France), the current culture of the thread from which tasks are invoked asynchronously becomes the current culture for that asynchronous operation.

using System;
using System.Globalization;
using System.Runtime.Versioning;
using System.Threading;
using System.Threading.Tasks;

[assembly:TargetFramework(".NETFramework,Version=v4.6")]

public class Example
{
   
   public static void Main()
   {
       decimal[] values = { 163025412.32m, 18905365.59m };
       string formatString = "C2";
       Func<String> formatDelegate = () => { string output = String.Format("Formatting using the {0} culture on thread {1}.\n",
                                                                           CultureInfo.CurrentCulture.Name,
                                                                           Thread.CurrentThread.ManagedThreadId);
                                             foreach (var value in values)
                                                output += String.Format("{0}   ", value.ToString(formatString));
                                                   
                                             output += Environment.NewLine;
                                             return output;
                                           };
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId);
       // Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name);
       if (CultureInfo.CurrentCulture.Name == "fr-FR")
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
       else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");

       Console.WriteLine("Changed the current culture to {0}.\n",
                         CultureInfo.CurrentCulture.Name);
       
       // Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:");
       Console.WriteLine(formatDelegate());
       
       // Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:"); 
       var t1 = Task.Run(formatDelegate);
       Console.WriteLine(t1.Result);
       
       Console.WriteLine("Executing a task synchronously:");
       var t2 = new Task<String>(formatDelegate); 
       t2.RunSynchronously();
       Console.WriteLine(t2.Result);
   }
}
// The example displays the following output:
//         The example is running on thread 1
//         The current culture is en-US
//         Changed the current culture to fr-FR.
//
//         Executing the delegate synchronously:
//         Formatting using the fr-FR culture on thread 1.
//         163 025 412,32 €   18 905 365,59 €
//
//         Executing a task asynchronously:
//         Formatting using the fr-FR culture on thread 3.
//         163 025 412,32 €   18 905 365,59 €
//
//         Executing a task synchronously:
//         Formatting using the fr-FR culture on thread 1.
//         163 025 412,32 €   18 905 365,59 €
Imports System.Globalization
Imports System.Runtime.Versioning
Imports System.Threading
Imports System.Threading.Tasks

<Assembly:TargetFramework(".NETFramework,Version=v4.6")>

Module Example
   Public Sub Main()
       Dim values() As Decimal = { 163025412.32d, 18905365.59d }
       Dim formatString As String = "C2"
       Dim formatDelegate As Func(Of String) = Function()
                                                  Dim output As String = String.Format("Formatting using the {0} culture on thread {1}.",
                                                                                       CultureInfo.CurrentCulture.Name,
                                                                                       Thread.CurrentThread.ManagedThreadId)
                                                  output += Environment.NewLine
                                                  For Each value In values
                                                     output += String.Format("{0}   ", value.ToString(formatString))
                                                  Next 
                                                  output += Environment.NewLine
                                                  Return output
                                               End Function
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId)
       ' Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name)
       If CultureInfo.CurrentCulture.Name = "fr-FR" Then
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US")
       Else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR")
       End If
       Console.WriteLine("Changed the current culture to {0}.",
                         CultureInfo.CurrentCulture.Name)
       Console.WriteLine()                  
       
       ' Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:")
       Console.WriteLine(formatDelegate())
       
       ' Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:") 
       Dim t1 = Task.Run(formatDelegate)
       Console.WriteLine(t1.Result)
       
       Console.WriteLine("Executing a task synchronously:")
       Dim t2 = New Task(Of String)(formatDelegate) 
       t2.RunSynchronously()
       Console.WriteLine(t2.Result)
   End Sub
End Module
' The example displays the following output:
'          The example is running on thread 1
'          The current culture is en-US
'          Changed the current culture to fr-FR.
'
'          Executing the delegate synchronously:
'          Formatting Imports the fr-FR culture on thread 1.
'          163 025 412,32 €   18 905 365,59 €
'
'          Executing a task asynchronously:
'          Formatting Imports the fr-FR culture on thread 3.
'          163 025 412,32 €   18 905 365,59 €
'
'          Executing a task synchronously:
'          Formatting Imports the fr-FR culture on thread 1.
'          163 025 412,32 €   18 905 365,59 €

Pour les applications qui ciblent des versions du .NET Framework antérieures .NET Framework 4.6.NET Framework 4.6à, ou pour les applications qui ne ciblent pas une version particulière du .NET Framework, la culture du thread appelant ne fait pas partie du contexte d’une tâche.For apps that target versions of the .NET Framework prior to the .NET Framework 4.6.NET Framework 4.6, or for apps that do not target a particular version of the .NET Framework, the culture of the calling thread is not part of a task's context. Au lieu de cela, à moins qu’il ne soit explicitement défini, la culture de nouveaux threads par défaut est la culture du système.Instead, unless one is explicitly defined, the culture of new threads by default is the system culture. L’exemple suivant, qui est identique à l’exemple précédent, à ceci près qu’il TargetFrameworkAttribute n’y a pas d’attribut, illustre cela.The following example, which is identical to the previous example except that it lacks the TargetFrameworkAttribute attribute, illustrates this. Étant donné que la culture système du système sur lequel l’exemple s’est exécuté était l’anglais (États-Unis), la culture de la tâche qui s’exécute de façon asynchrone sur un thread de pool de threads est en-US plutôt que fr-FR.Because the system culture of the system on which the example executed was English (United States), the culture of the task that executes asynchronously on a thread pool thread is en-US rather than fr-FR.

using System;
using System.Globalization;
using System.Runtime.Versioning;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
       decimal[] values = { 163025412.32m, 18905365.59m };
       string formatString = "C2";
       Func<String> formatDelegate = () => { string output = String.Format("Formatting using the {0} culture on thread {1}.\n",
                                                                           CultureInfo.CurrentCulture.Name,
                                                                           Thread.CurrentThread.ManagedThreadId);
                                             foreach (var value in values)
                                                output += String.Format("{0}   ", value.ToString(formatString));
                                                   
                                             output += Environment.NewLine;
                                             return output;
                                           };
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId);
       // Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name);
       if (CultureInfo.CurrentCulture.Name == "fr-FR")
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
       else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");

       Console.WriteLine("Changed the current culture to {0}.\n",
                         CultureInfo.CurrentCulture.Name);
       
       // Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:");
       Console.WriteLine(formatDelegate());
       
       // Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:"); 
       var t1 = Task.Run(formatDelegate);
       Console.WriteLine(t1.Result);
       
       Console.WriteLine("Executing a task synchronously:");
       var t2 = new Task<String>(formatDelegate); 
       t2.RunSynchronously();
       Console.WriteLine(t2.Result);
   }
}
// The example displays the following output:
//     The example is running on thread 1
//     The current culture is en-US
//     Changed the current culture to fr-FR.
//     
//     Executing the delegate synchronously:
//     Formatting using the fr-FR culture on thread 1.
//     163 025 412,32 €   18 905 365,59 €
//     
//     Executing a task asynchronously:
//     Formatting using the en-US culture on thread 3.
//     $163,025,412.32   $18,905,365.59
//     
//     Executing a task synchronously:
//     Formatting using the fr-FR culture on thread 1.
//     163 025 412,32 €   18 905 365,59 €
Imports System.Globalization
Imports System.Runtime.Versioning
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
       Dim values() As Decimal = { 163025412.32d, 18905365.59d }
       Dim formatString As String = "C2"
       Dim formatDelegate As Func(Of String) = Function()
                                                  Dim output As String = String.Format("Formatting using the {0} culture on thread {1}.",
                                                                                       CultureInfo.CurrentCulture.Name,
                                                                                       Thread.CurrentThread.ManagedThreadId)
                                                  output += Environment.NewLine
                                                  For Each value In values
                                                     output += String.Format("{0}   ", value.ToString(formatString))
                                                  Next 
                                                  output += Environment.NewLine
                                                  Return output
                                               End Function
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId)
       ' Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name)
       If CultureInfo.CurrentCulture.Name = "fr-FR" Then
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US")
       Else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR")
       End If
       Console.WriteLine("Changed the current culture to {0}.",
                         CultureInfo.CurrentCulture.Name)
       Console.WriteLine()                  
       
       ' Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:")
       Console.WriteLine(formatDelegate())
       
       ' Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:") 
       Dim t1 = Task.Run(formatDelegate)
       Console.WriteLine(t1.Result)
       
       Console.WriteLine("Executing a task synchronously:")
       Dim t2 = New Task(Of String)(formatDelegate) 
       t2.RunSynchronously()
       Console.WriteLine(t2.Result)
   End Sub
End Module
' The example displays the following output:
'     The example is running on thread 1
'     The current culture is en-US
'     Changed the current culture to fr-FR.
'     
'     Executing the delegate synchronously:
'     Formatting using the fr-FR culture on thread 1.
'     163 025 412,32 €   18 905 365,59 €
'     
'     Executing a task asynchronously:
'     Formatting using the en-US culture on thread 3.
'     $163,025,412.32   $18,905,365.59
'     
'     Executing a task synchronously:
'     Formatting using the fr-FR culture on thread 1.
'     163 025 412,32 €   18 905 365,59 €

Pour les applications qui ciblent des versions du .NET Framework .NET Framework 4.5.NET Framework 4.5 à partir du et versions ultérieures .NET Framework 4.6.NET Framework 4.6, mais avant, DefaultThreadCurrentCulture vous DefaultThreadCurrentUICulture pouvez utiliser les propriétés et pour vous assurer que la culture du thread appelant est utilisée dans les tâches asynchrones qui exécuter sur des threads de pool de threads.For apps that target versions of the .NET Framework from the .NET Framework 4.5.NET Framework 4.5 and later but prior to the .NET Framework 4.6.NET Framework 4.6, you can use the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties to ensure that the culture of the calling thread is used in asynchronous tasks that execute on thread pool threads. L’exemple suivant est identique à l’exemple précédent, à ceci près qu’il DefaultThreadCurrentCulture utilise la propriété pour s’assurer que les threads de pool de threads ont la même culture que le thread d’application principal.The following example is identical to the previous example, except that it uses the DefaultThreadCurrentCulture property to ensure that thread pool threads have the same culture as the main app thread.

using System;
using System.Globalization;
using System.Runtime.Versioning;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
       decimal[] values = { 163025412.32m, 18905365.59m };
       string formatString = "C2";
       Func<String> formatDelegate = () => { string output = String.Format("Formatting using the {0} culture on thread {1}.\n",
                                                                           CultureInfo.CurrentCulture.Name,
                                                                           Thread.CurrentThread.ManagedThreadId);
                                             foreach (var value in values)
                                                output += String.Format("{0}   ", value.ToString(formatString));
                                                   
                                             output += Environment.NewLine;
                                             return output;
                                           };
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId);
       // Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name);
       if (CultureInfo.CurrentCulture.Name == "fr-FR")
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
       else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");

       Console.WriteLine("Changed the current culture to {0}.\n",
                         CultureInfo.CurrentCulture.Name);
       CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CurrentCulture;
       
       // Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:");
       Console.WriteLine(formatDelegate());
       
       // Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:"); 
       var t1 = Task.Run(formatDelegate);
       Console.WriteLine(t1.Result);
       
       Console.WriteLine("Executing a task synchronously:");
       var t2 = new Task<String>(formatDelegate); 
       t2.RunSynchronously();
       Console.WriteLine(t2.Result);
   }
}
// The example displays the following output:
//     The example is running on thread 1
//     The current culture is en-US
//     Changed the current culture to fr-FR.
//     
//     Executing the delegate synchronously:
//     Formatting using the fr-FR culture on thread 1.
//     163 025 412,32 €   18 905 365,59 €
//     
//     Executing a task asynchronously:
//     Formatting using the fr-FR culture on thread 3.
//     163 025 412,32 €   18 905 365,59 €
//     
//     Executing a task synchronously:
//     Formatting using the fr-FR culture on thread 1.
//     163 025 412,32 €   18 905 365,59 €
Imports System.Globalization
Imports System.Runtime.Versioning
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
       Dim values() As Decimal = { 163025412.32d, 18905365.59d }
       Dim formatString As String = "C2"
       Dim formatDelegate As Func(Of String) = Function()
                                                  Dim output As String = String.Format("Formatting using the {0} culture on thread {1}.",
                                                                                       CultureInfo.CurrentCulture.Name,
                                                                                       Thread.CurrentThread.ManagedThreadId)
                                                  output += Environment.NewLine
                                                  For Each value In values
                                                     output += String.Format("{0}   ", value.ToString(formatString))
                                                  Next 
                                                  output += Environment.NewLine
                                                  Return output
                                               End Function
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId)
       ' Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name)
       If CultureInfo.CurrentCulture.Name = "fr-FR" Then
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US")
       Else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR")
       End If
       Console.WriteLine("Changed the current culture to {0}.",
                         CultureInfo.CurrentCulture.Name)
       CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CurrentCulture
       Console.WriteLine()                  
       
       ' Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:")
       Console.WriteLine(formatDelegate())
       
       ' Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:") 
       Dim t1 = Task.Run(formatDelegate)
       Console.WriteLine(t1.Result)
       
       Console.WriteLine("Executing a task synchronously:")
       Dim t2 = New Task(Of String)(formatDelegate) 
       t2.RunSynchronously()
       Console.WriteLine(t2.Result)
   End Sub
End Module
' The example displays the following output:
'       The example is running on thread 1
'       The current culture is en-US
'       Changed the current culture to fr-FR.
'       
'       Executing the delegate synchronously:
'       Formatting using the fr-FR culture on thread 1.
'       163 025 412,32 €   18 905 365,59 €
'       
'       Executing a task asynchronously:
'       Formatting using the fr-FR culture on thread 3.
'       163 025 412,32 €   18 905 365,59 €
'       
'       Executing a task synchronously:
'       Formatting using the fr-FR culture on thread 1.
'       163 025 412,32 €   18 905 365,59 €

DefaultThreadCurrentCultureet DefaultThreadCurrentUICulture sont des propriétés de domaine par application ; autrement dit, elles établissent une culture par défaut pour tous les threads qui n’ont pas explicitement assigné une culture dans un domaine d’application spécifique.DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture are per-app domain properties; that is, they establish a default culture for all threads not explicitly assigned a culture in a specific application domain. Toutefois, pour les applications qui ciblent le .NET Framework 4.6.NET Framework 4.6 ou version ultérieure, la culture du thread appelant fait toujours partie du contexte d’une tâche asynchrone, même si la tâche franchit les limites du domaine d’application.However, for apps that target the .NET Framework 4.6.NET Framework 4.6 or later, the culture of the calling thread remains part of an asynchronous task's context even if the task crosses app domain boundaries.

L’exemple suivant montre que la culture du thread appelant reste la culture actuelle d’une opération asynchrone basée sur les tâches, même si la méthode exécutée par la tâche franchit les limites du domaine d’application.The following example shows that the calling thread's culture remains the current culture of a task-based asynchronous operation even if the method that the task is executing crosses application domain boundaries. Il définit une classe, DataRetriever, avec une méthode unique, GetFormattedNumber, qui retourne un nombre à virgule flottante double précision aléatoire compris entre 1 et 1 000 mis en forme en tant que valeur monétaire.It defines a class, DataRetriever, with a single method, GetFormattedNumber, that returns a random double-precision floating-point number between 1 and 1,000 formatted as a currency value. Une première tâche est exécutée qui instancie simplement DataRetriever une instance et appelle GetFormattedNumber sa méthode.A first task is run that simply instantiates a DataRetriever instance and calls its GetFormattedNumber method. Une deuxième tâche signale son domaine d’application actuel, crée un nouveau domaine d’application, DataRetriever instancie une instance dans le nouveau domaine d’application GetFormattedNumber et appelle sa méthode.A second task reports its current application domain, creates a new application domain, instantiates a DataRetriever instance in the new application domain, and calls its GetFormattedNumber method. Comme le montre la sortie de l’exemple, la culture actuelle est restée la même dans le thread appelant, la première tâche et la deuxième tâche lorsqu’elle s’exécutait dans le domaine d’application principal et le deuxième domaine d’application.As the output from the example shows, the current culture has remained the same in the calling thread, the first task, and the second task both when it was executing in the main application domain and the second application domain.

using System;
using System.Globalization;
using System.Runtime.Versioning;
using System.Threading;
using System.Threading.Tasks;

[assembly:TargetFramework(".NETFramework,Version=v4.6")]

public class Example
{
   public static void Main()
   {
       string formatString = "C2";
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId);
       // Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name);
       if (CultureInfo.CurrentCulture.Name == "fr-FR")
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
       else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");

       Console.WriteLine("Changed the current culture to {0}.\n",
                         CultureInfo.CurrentCulture.Name);
       
       // Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously in the main appdomain:"); 
       var t1 = Task.Run(() => { DataRetriever d = new DataRetriever();
                                 return d.GetFormattedNumber(formatString);
                               });
       Console.WriteLine(t1.Result);
       Console.WriteLine(); 
       
       Console.WriteLine("Executing a task synchronously in two appdomains:");
       var t2 = Task.Run(() => { Console.WriteLine("Thread {0} is running in app domain '{1}'", 
                                                   Thread.CurrentThread.ManagedThreadId, 
                                                   AppDomain.CurrentDomain.FriendlyName);
                                 AppDomain domain = AppDomain.CreateDomain("Domain2");
                                 DataRetriever d = (DataRetriever) domain.CreateInstanceAndUnwrap(typeof(Example).Assembly.FullName,
                                                   "DataRetriever");
                                 return d.GetFormattedNumber(formatString); 
                               }); 
       Console.WriteLine(t2.Result);
   }
}

public class DataRetriever : MarshalByRefObject
{
   public string GetFormattedNumber(String format)
   {
      Thread thread = Thread.CurrentThread;
      Console.WriteLine("Current culture is {0}", thread.CurrentCulture);
      Console.WriteLine("Thread {0} is running in app domain '{1}'", 
                        thread.ManagedThreadId, 
                        AppDomain.CurrentDomain.FriendlyName);
      Random rnd = new Random();
      Double value = rnd.NextDouble() * 1000;
      return value.ToString(format);
   }
}
// The example displays output like the following:
//     The example is running on thread 1
//     The current culture is en-US
//     Changed the current culture to fr-FR.
//     
//     Executing a task asynchronously in a single appdomain:
//     Current culture is fr-FR
//     Thread 3 is running in app domain 'AsyncCulture4.exe'
//     93,48 €
//     
//     Executing a task synchronously in two appdomains:
//     Thread 4 is running in app domain 'AsyncCulture4.exe'
//     Current culture is fr-FR
//     Thread 4 is running in app domain 'Domain2'
//     288,66 €
Imports System.Globalization
Imports System.Runtime.Versioning
Imports System.Threading
Imports System.Threading.Tasks

<Assembly:TargetFramework(".NETFramework,Version=v4.6")>

Module Example
   Public Sub Main()
       Dim formatString As String = "C2"
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId)
       ' Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name)
       If CultureInfo.CurrentCulture.Name = "fr-FR" Then
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US")
       Else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR")
       End If

       Console.WriteLine("Changed the current culture to {0}.",
                         CultureInfo.CurrentCulture.Name)
       Console.WriteLine()
       
       ' Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously in the main appdomain:") 
       Dim t1 = Task.Run(Function()
                            Dim d As New DataRetriever()
                            Return d.GetFormattedNumber(formatString)
                         End Function)
       Console.WriteLine(t1.Result)
       Console.WriteLine() 
       
       Console.WriteLine("Executing a task synchronously in two appdomains:")
       Dim t2 = Task.Run(Function()
                            Console.WriteLine("Thread {0} is running in app domain '{1}'", 
                                              Thread.CurrentThread.ManagedThreadId, 
                                              AppDomain.CurrentDomain.FriendlyName)
                            Dim domain As AppDomain = AppDomain.CreateDomain("Domain2")
                            Dim d As DataRetriever = CType(domain.CreateInstanceAndUnwrap(GetType(Example).Assembly.FullName,
                                                                                          "DataRetriever"), DataRetriever)
                            Return d.GetFormattedNumber(formatString) 
                         End Function) 
       Console.WriteLine(t2.Result)
   End Sub
End Module

Public Class DataRetriever : Inherits MarshalByRefObject
   Public Function GetFormattedNumber(format As String) As String
      Dim thread As Thread = Thread.CurrentThread
      Console.WriteLine("Current culture is {0}", thread.CurrentCulture)
      Console.WriteLine("Thread {0} is running in app domain '{1}'", 
                        thread.ManagedThreadId, 
                        AppDomain.CurrentDomain.FriendlyName)
      Dim rnd As New Random()
      Dim value As Double = rnd.NextDouble() * 1000
      Return value.ToString(format)
   End Function
End Class
' The example displays output like the following:
'     The example is running on thread 1
'     The current culture is en-US
'     Changed the current culture to fr-FR.
'     
'     Executing a task asynchronously in a single appdomain:
'     Current culture is fr-FR
'     Thread 3 is running in app domain 'AsyncCulture4.exe'
'     93,48 €
'     
'     Executing a task synchronously in two appdomains:
'     Thread 4 is running in app domain 'AsyncCulture4.exe'
'     Current culture is fr-FR
'     Thread 4 is running in app domain 'Domain2'
'     288,66 €

Sérialisation de l’objet CultureInfoCultureInfo object serialization

Lorsqu’un CultureInfo objet est sérialisé, tout ce qui est réellement stocké Name est UseUserOverrideet.When a CultureInfo object is serialized, all that is actually stored is Name and UseUserOverride. Elle est désérialisée avec succès uniquement dans un environnement où Name elle a la même signification.It is successfully de-serialized only in an environment where that Name has the same meaning. Les trois exemples suivants montrent pourquoi cela n’est pas toujours le cas :The following three examples show why this is not always the case:

  • Si la CultureTypes valeur de propriété CultureTypes.InstalledWin32Culturesest, et si cette culture a été introduite pour la première fois dans une version particulière du système d’exploitation Windows, il n’est pas possible de la désérialiser sur une version antérieure de Windows.If the CultureTypes property value is CultureTypes.InstalledWin32Cultures, and if that culture was first introduced in a particular version of the Windows operating system, it is not possible to deserialize it on an earlier version of Windows. Par exemple, si une culture a été introduite dans Windows 10, elle ne peut pas être désérialisée sur Windows 8.For example, if a culture was introduced in Windows 10, it cannot be deserialized on Windows 8.

  • Si la CultureTypes valeur est CultureTypes.UserCustomCulture, et que l’ordinateur sur lequel elle est désérialisée n’a pas cette culture personnalisée d’utilisateur installée, il n’est pas possible de la désérialiser.If the CultureTypes value is CultureTypes.UserCustomCulture, and the computer on which it is de-serialized does not have this user custom culture installed, it is not possible to deserialize it.

  • Si la CultureTypes valeur est CultureTypes.ReplacementCultures, et que l’ordinateur sur lequel elle est désérialisée n’a pas cette culture de remplacement, elle est désérialisée au même nom, mais pas toutes les mêmes caractéristiques.If the CultureTypes value is CultureTypes.ReplacementCultures, and the computer on which it is de-serialized does not have this replacement culture, it de-serializes to the same name, but not all of the same characteristics. Par exemple, si en-US est une culture de remplacement sur l’ordinateur a, mais pas sur l’ordinateur b, CultureInfo et si un objet qui fait référence à cette culture est sérialisé sur l’ordinateur a et désérialisé sur l’ordinateur b, aucune des caractéristiques personnalisées de la culture n’est transférés.For example, if en-US is a replacement culture on computer A, but not on computer B, and if a CultureInfo object referring to this culture is serialized on computer A and de-serialized on computer B, then none of the custom characteristics of the culture are transmitted. La culture est désérialisée avec succès, mais avec une signification différente.The culture deserializes successfully, but with a different meaning.

Remplacements du panneau de configurationControl Panel overrides

L’utilisateur peut choisir de remplacer certaines des valeurs associées à la culture actuelle de Windows par le biais des options régionales et linguistiques du panneau de configuration.The user might choose to override some of the values associated with the current culture of Windows through the regional and language options portion of Control Panel. Par exemple, l’utilisateur peut choisir d’afficher la date dans un format différent ou d’utiliser une devise autre que celle par défaut pour la culture.For example, the user might choose to display the date in a different format or to use a currency other than the default for the culture. En général, vos applications doivent honorer ces substitutions d’utilisateur.In general, your applications should honor these user overrides.

Si UseUserOverride CultureInfo est true et que la culture spécifiée correspond à la culture actuelle de Windows, le utilise ces substitutions, y compris les paramètres utilisateur pour les DateTimeFormatInfo propriétés de l’instance DateTimeFormat retournée par la propriété. et les propriétés de l' NumberFormatInfo instance retournée par NumberFormat la propriété.If UseUserOverride is true and the specified culture matches the current culture of Windows, the CultureInfo uses those overrides, including user settings for the properties of the DateTimeFormatInfo instance returned by the DateTimeFormat property, and the properties of the NumberFormatInfo instance returned by the NumberFormat property. Si les paramètres utilisateur ne sont pas compatibles avec la culture associée CultureInfoà, par exemple, si le calendrier sélectionné n’est pas l’un OptionalCalendarsdes, les résultats des méthodes et les valeurs des propriétés ne sont pas définis.If the user settings are incompatible with the culture associated with the CultureInfo, for example, if the selected calendar is not one of the OptionalCalendars, the results of the methods and the values of the properties are undefined.

Autres ordres de triAlternate sort orders

Certaines cultures prennent en charge plusieurs ordres de tri.Some cultures support more than one sort order. Par exemple :For example:

  • La culture espagnole (Espagne) a deux ordres de tri : l’ordre de tri international par défaut et l’ordre de tri traditionnel.The Spanish (Spain) culture has two sort orders: the default international sort order, and the traditional sort order. Lorsque vous instanciez CultureInfo un objet avec le nom de culture es-es, l’ordre de tri international est utilisé.When you instantiate a CultureInfo object with the es-ES culture name, the international sort order is used. Lorsque vous instanciez CultureInfo un objet avec le nom de culture es-es-tradnl, l’ordre de tri traditionnel est utilisé.When you instantiate a CultureInfo object with the es-ES-tradnl culture name, the traditional sort order is used.

  • La culture zh-CN (chinois (simplifié, PRC)) prend en charge deux ordres de tri : la prononciation (valeur par défaut) et le nombre de traits.The zh-CN (Chinese (Simplified, PRC)) culture supports two sort orders: by pronunciation (the default) and by stroke count. Lorsque vous instanciez CultureInfo un objet avec le nom de culture zh-CN, l’ordre de tri par défaut est utilisé.When you instantiate a CultureInfo object with the zh-CN culture name, the default sort order is used. Lorsque vous instanciez CultureInfo un objet avec un identificateur local 0x00020804, les chaînes sont triées par nombre de traits.When you instantiate a CultureInfo object with a local identifier of 0x00020804, strings are sorted by stroke count.

Le tableau suivant répertorie les cultures qui prennent en charge d’autres ordres de tri et les identificateurs pour les ordres de tri par défaut et secondaires.The following table lists the cultures that support alternate sort orders and the identifiers for the default and alternate sort orders.

Nom de la cultureCulture name cultureCulture Nom de tri et identificateur par défautDefault sort name and identifier Autre nom et identificateur de triAlternate sort name and identifier
es-ESes-ES Espagnol (Espagne)Spanish (Spain) International 0x00000C0AInternational: 0x00000C0A Traditionnel 0x0000040ATraditional: 0x0000040A
zh-TWzh-TW Chinois (Taïwan)Chinese (Taiwan) Nombre de traits : 0x00000404Stroke Count: 0x00000404 TCH 0x00030404Bopomofo: 0x00030404
zh-CNzh-CN Chinois (RPC)Chinese (PRC) Prénom 0x00000804Pronunciation: 0x00000804 Nombre de traits : 0x00020804Stroke Count: 0x00020804
zh-HKzh-HK Chinois (Hong Kong R.A.S.)Chinese (Hong Kong SAR) Nombre de traits : 0x00000c04Stroke Count: 0x00000c04 Nombre de traits : 0x00020c04Stroke Count: 0x00020c04
zh-SGzh-SG Chinois (Singapour)Chinese (Singapore) Prénom 0x00001004Pronunciation: 0x00001004 Nombre de traits : 0x00021004Stroke Count: 0x00021004
zh-MOzh-MO Chinois (RAS de Macao)Chinese (Macao SAR) Prénom 0x00001404Pronunciation: 0x00001404 Nombre de traits : 0x00021404Stroke Count: 0x00021404
ja-JPja-JP Japonais (Japon)Japanese (Japan) Par défaut : 0x00000411Default: 0x00000411 Unicode : 0x00010411Unicode: 0x00010411
ko-KRko-KR Coréen (Corée)Korean (Korea) Par défaut : 0x00000412Default: 0x00000412 Coréen Xwansung-Unicode : 0x00010412Korean Xwansung - Unicode: 0x00010412
de-DEde-DE Allemand (Allemagne)German (Germany) DIC 0x00000407Dictionary: 0x00000407 Tri de l’annuaire téléphonique DIN : 0x00010407Phone Book Sort DIN: 0x00010407
HU-HUhu-HU Hongrois (Hongrie)Hungarian (Hungary) Par défaut : 0x0000040eDefault: 0x0000040e Tri technique : 0x0001040eTechnical Sort: 0x0001040e
ka-GEka-GE Géorgien (Géorgie)Georgian (Georgia) Traditionnel 0x00000437Traditional: 0x00000437 Tri moderne : 0x00010437Modern Sort: 0x00010437

La culture actuelle et les applications UWPThe current culture and UWP apps

Dans les applications plateforme Windows universelle (UWP), CurrentCulture les CurrentUICulture propriétés et sont en lecture-écriture, tout comme dans les applications .NET Framework et .net core.In Universal Windows Platform (UWP) apps, the CurrentCulture and CurrentUICulture properties are read-write, just as they are in .NET Framework and .NET Core apps. Toutefois, les applications UWP reconnaissent une seule culture.However, UWP apps recognize a single culture. Les CurrentCulture propriétés CurrentUICulture et sont mappées à la première valeur de la collection Windows. ApplicationModel. resources. Core. ResourceManager. DefaultContext. Languages .The CurrentCulture and CurrentUICulture properties map to the first value in the Windows.ApplicationModel.Resources.Core.ResourceManager.DefaultContext.Languages collection.

Dans les applications .NET Framework et .net Core, la culture actuelle est un paramètre par thread, et les CurrentCulture propriétés CurrentUICulture et reflètent la culture et la culture d’interface utilisateur du thread actuel uniquement.In .NET Framework and .NET Core apps, the current culture is a per-thread setting, and the CurrentCulture and CurrentUICulture properties reflect the culture and UI culture of the current thread only. Dans les applications UWP, la culture actuelle est mappée à la collection Windows. ApplicationModel. resources. Core. ResourceManager. DefaultContext. Languages , qui est un paramètre global.In UWP apps, the current culture maps to the Windows.ApplicationModel.Resources.Core.ResourceManager.DefaultContext.Languages collection, which is a global setting. La définition CurrentCulture de CurrentUICulture la propriété ou modifie la culture de l’application entière ; la culture ne peut pas être définie pour chaque thread.Setting the CurrentCulture or CurrentUICulture property changes the culture of the entire app; culture cannot be set on a per-thread basis.

Constructeurs

CultureInfo(Int32) CultureInfo(Int32) CultureInfo(Int32) CultureInfo(Int32)

Initialise une nouvelle instance de la classe CultureInfo en fonction de la culture spécifiée par l'identificateur de culture.Initializes a new instance of the CultureInfo class based on the culture specified by the culture identifier.

CultureInfo(Int32, Boolean) CultureInfo(Int32, Boolean) CultureInfo(Int32, Boolean) CultureInfo(Int32, Boolean)

Initialise une nouvelle instance de la classe CultureInfo en fonction de la culture spécifiée par l'identificateur de culture et de la valeur booléenne spécifiant si les paramètres de culture sélectionnés par l'utilisateur sur le système doivent être utilisés.Initializes a new instance of the CultureInfo class based on the culture specified by the culture identifier and on the Boolean that specifies whether to use the user-selected culture settings from the system.

CultureInfo(String) CultureInfo(String) CultureInfo(String) CultureInfo(String)

Initialise une nouvelle instance de la classe CultureInfo en fonction de la culture spécifiée par nom.Initializes a new instance of the CultureInfo class based on the culture specified by name.

CultureInfo(String, Boolean) CultureInfo(String, Boolean) CultureInfo(String, Boolean) CultureInfo(String, Boolean)

Initialise une nouvelle instance de la classe CultureInfo en fonction de la culture spécifiée par le nom et de la valeur booléenne spécifiant s'il faut utiliser les paramètres de culture sélectionnés par l'utilisateur sur le système.Initializes a new instance of the CultureInfo class based on the culture specified by name and on the Boolean that specifies whether to use the user-selected culture settings from the system.

Propriétés

Calendar Calendar Calendar Calendar

Obtient le calendrier par défaut utilisé par la culture.Gets the default calendar used by the culture.

CompareInfo CompareInfo CompareInfo CompareInfo

Obtient l'élément CompareInfo qui définit le mode de comparaison des chaînes pour la culture.Gets the CompareInfo that defines how to compare strings for the culture.

CultureTypes CultureTypes CultureTypes CultureTypes

Obtient les types de cultures appartenant à l'objet CultureInfo actuel.Gets the culture types that pertain to the current CultureInfo object.

CurrentCulture CurrentCulture CurrentCulture CurrentCulture

Obtient ou définit l'objet CultureInfo qui représente la culture utilisée par le thread actif.Gets or sets the CultureInfo object that represents the culture used by the current thread.

CurrentUICulture CurrentUICulture CurrentUICulture CurrentUICulture

Obtient ou définit l'objet CultureInfo qui représente la culture d'interface utilisateur actuelle utilisée par le Gestionnaire de ressources pour rechercher des ressources spécifiques à la culture au moment de l'exécution.Gets or sets the CultureInfo object that represents the current user interface culture used by the Resource Manager to look up culture-specific resources at run time.

DateTimeFormat DateTimeFormat DateTimeFormat DateTimeFormat

Obtient ou définit un DateTimeFormatInfo qui définit le format d'affichage des dates et de l'heure approprié pour la culture.Gets or sets a DateTimeFormatInfo that defines the culturally appropriate format of displaying dates and times.

DefaultThreadCurrentCulture DefaultThreadCurrentCulture DefaultThreadCurrentCulture DefaultThreadCurrentCulture

Obtient ou définit la culture par défaut pour les threads dans le domaine d'application en cours.Gets or sets the default culture for threads in the current application domain.

DefaultThreadCurrentUICulture DefaultThreadCurrentUICulture DefaultThreadCurrentUICulture DefaultThreadCurrentUICulture

Obtient ou définit la culture de l'interface utilisateur par défaut pour les threads dans le domaine d'application actuel.Gets or sets the default UI culture for threads in the current application domain.

DisplayName DisplayName DisplayName DisplayName

Obtient le nom localisé complet de la culture.Gets the full localized culture name.

EnglishName EnglishName EnglishName EnglishName

Obtient le nom de la culture au format langue_complète [pays/région_complet] en anglais.Gets the culture name in the format languagefull [country/regionfull] in English.

IetfLanguageTag IetfLanguageTag IetfLanguageTag IetfLanguageTag

Obsolète.Deprecated. Obtient l'identification d'une langue selon la norme RFC 4646.Gets the RFC 4646 standard identification for a language.

InstalledUICulture InstalledUICulture InstalledUICulture InstalledUICulture

Obtient le CultureInfo représentant la culture installée avec le système d'exploitation.Gets the CultureInfo that represents the culture installed with the operating system.

InvariantCulture InvariantCulture InvariantCulture InvariantCulture

Obtient l'objet CultureInfo indépendant de la culture (indifférent).Gets the CultureInfo object that is culture-independent (invariant).

IsNeutralCulture IsNeutralCulture IsNeutralCulture IsNeutralCulture

Obtient une valeur indiquant si le CultureInfo en cours représente une culture neutre.Gets a value indicating whether the current CultureInfo represents a neutral culture.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Obtient une valeur indiquant si le CultureInfo en cours est en lecture seule.Gets a value indicating whether the current CultureInfo is read-only.

KeyboardLayoutId KeyboardLayoutId KeyboardLayoutId KeyboardLayoutId

Obtient l'identificateur des paramètres régionaux d'entrée actifs.Gets the active input locale identifier.

LCID LCID LCID LCID

Obtient l'identificateur de culture du CultureInfo en cours.Gets the culture identifier for the current CultureInfo.

Name Name Name Name

Obtient le nom de la culture au format code_langue2-code_région/pays2.Gets the culture name in the format languagecode2-country/regioncode2.

NativeName NativeName NativeName NativeName

Obtient le nom de la culture, qui est composé de la langue, du pays ou de la région et du script facultatif, pour lesquels la culture est configurée.Gets the culture name, consisting of the language, the country/region, and the optional script, that the culture is set to display.

NumberFormat NumberFormat NumberFormat NumberFormat

Obtient ou définit un NumberFormatInfo qui définit le format d'affichage des nombres, devises et pourcentages approprié pour la culture.Gets or sets a NumberFormatInfo that defines the culturally appropriate format of displaying numbers, currency, and percentage.

OptionalCalendars OptionalCalendars OptionalCalendars OptionalCalendars

Obtient la liste des calendriers pouvant être utilisés par la culture.Gets the list of calendars that can be used by the culture.

Parent Parent Parent Parent

Obtient le CultureInfo qui représente la culture parente du CultureInfo en cours.Gets the CultureInfo that represents the parent culture of the current CultureInfo.

TextInfo TextInfo TextInfo TextInfo

Obtient le TextInfo définissant le système d'écriture associé à la culture.Gets the TextInfo that defines the writing system associated with the culture.

ThreeLetterISOLanguageName ThreeLetterISOLanguageName ThreeLetterISOLanguageName ThreeLetterISOLanguageName

Obtient le code ISO 639-2 de trois lettres correspondant à la langue du CultureInfo en cours.Gets the ISO 639-2 three-letter code for the language of the current CultureInfo.

ThreeLetterWindowsLanguageName ThreeLetterWindowsLanguageName ThreeLetterWindowsLanguageName ThreeLetterWindowsLanguageName

Obtient le code de trois lettres correspondant à la langue, tel que défini dans l'API Windows.Gets the three-letter code for the language as defined in the Windows API.

TwoLetterISOLanguageName TwoLetterISOLanguageName TwoLetterISOLanguageName TwoLetterISOLanguageName

Obtient le code ISO 639-1 de deux lettres correspondant à la langue du CultureInfo en cours.Gets the ISO 639-1 two-letter code for the language of the current CultureInfo.

UseUserOverride UseUserOverride UseUserOverride UseUserOverride

Obtient une valeur indiquant si l’élément CultureInfo actuel utilise les paramètres de culture sélectionnés par l’utilisateur.Gets a value indicating whether the current CultureInfo object uses the user-selected culture settings.

Méthodes

ClearCachedData() ClearCachedData() ClearCachedData() ClearCachedData()

Actualise les informations sur la culture mises en cache.Refreshes cached culture-related information.

Clone() Clone() Clone() Clone()

Crée une copie de l'élément CultureInfo actuel.Creates a copy of the current CultureInfo.

CreateSpecificCulture(String) CreateSpecificCulture(String) CreateSpecificCulture(String) CreateSpecificCulture(String)

Crée un élément CultureInfo qui représente la culture spécifique associée au nom spécifié.Creates a CultureInfo that represents the specific culture that is associated with the specified name.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Détermine si la culture de l'objet spécifié est identique à celle du CultureInfo en cours.Determines whether the specified object is the same culture as the current CultureInfo.

GetConsoleFallbackUICulture() GetConsoleFallbackUICulture() GetConsoleFallbackUICulture() GetConsoleFallbackUICulture()

Obtient une autre culture de l'interface utilisateur qui convient aux applications console lorsque la culture de l'interface utilisateur graphique par défaut est inappropriée.Gets an alternate user interface culture suitable for console applications when the default graphic user interface culture is unsuitable.

GetCultureInfo(Int32) GetCultureInfo(Int32) GetCultureInfo(Int32) GetCultureInfo(Int32)

Récupère une instance mise en cache et en lecture seule d'une culture à l'aide de l'identificateur de culture spécifié.Retrieves a cached, read-only instance of a culture by using the specified culture identifier.

GetCultureInfo(String) GetCultureInfo(String) GetCultureInfo(String) GetCultureInfo(String)

Récupère l'instance mise en cache et en lecture seule d'une culture à l'aide du nom de culture spécifié.Retrieves a cached, read-only instance of a culture using the specified culture name.

GetCultureInfo(String, String) GetCultureInfo(String, String) GetCultureInfo(String, String) GetCultureInfo(String, String)

Récupère l'instance mise en cache et en lecture seule d'une culture.Retrieves a cached, read-only instance of a culture. Les paramètres spécifient une culture qui est initialisée avec les objets TextInfo et CompareInfo spécifiés par une autre culture.Parameters specify a culture that is initialized with the TextInfo and CompareInfo objects specified by another culture.

GetCultureInfoByIetfLanguageTag(String) GetCultureInfoByIetfLanguageTag(String) GetCultureInfoByIetfLanguageTag(String) GetCultureInfoByIetfLanguageTag(String)

Obsolète.Deprecated. Récupère un objet CultureInfo en lecture seule ayant des caractéristiques linguistiques identifiées par la balise de langue RFC 4646 spécifiée.Retrieves a read-only CultureInfo object having linguistic characteristics that are identified by the specified RFC 4646 language tag.

GetCultures(CultureTypes) GetCultures(CultureTypes) GetCultures(CultureTypes) GetCultures(CultureTypes)

Obtient la liste des cultures prises en charge, filtrées selon le paramètre CultureTypes spécifié.Gets the list of supported cultures filtered by the specified CultureTypes parameter.

GetFormat(Type) GetFormat(Type) GetFormat(Type) GetFormat(Type)

Obtient un objet définissant la mise en forme du type spécifié.Gets an object that defines how to format the specified type.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Est utilisé comme fonction de hachage pour le CultureInfo en cours et convient aux algorithmes de hachage et aux structures de données, par exemple une table de hachage.Serves as a hash function for the current CultureInfo, suitable for hashing algorithms and data structures, such as a hash table.

GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
ReadOnly(CultureInfo) ReadOnly(CultureInfo) ReadOnly(CultureInfo) ReadOnly(CultureInfo)

Retourne un wrapper en lecture seule autour de l’objet CultureInfo spécifié.Returns a read-only wrapper around the specified CultureInfo object.

ToString() ToString() ToString() ToString()

Retourne une chaîne contenant le nom de l’élément CultureInfo actuel au format code_langue2-code_région/pays2.Returns a string containing the name of the current CultureInfo in the format languagecode2-country/regioncode2.

S’applique à

Voir aussi