Entrainement
Module
Mettre en forme des données alphanumériques en vue de leur affichage en C# - Training
Explorez les méthodes de base en C# pour mettre en forme des données alphanumériques.
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
.NET 5 et versions ultérieures utilisent des bibliothèques Composants internationaux pour Unicode (ICU) pour la fonctionnalité de globalisation lors de l’exécution sur la mise à jour de mai 2019 Windows 10 ou version ultérieure.
Dans .NET 1.0 - 3.1 et .NET Framework 4 et version ultérieure, les bibliothèques .NET utilisaient les API NLS (National Language Support) pour la fonctionnalité de globalisation sur Windows. Par exemple, les fonctions NLS étaient utilisées pour comparer des chaînes, obtenir des informations de culture et effectuer la casse de chaîne dans la culture appropriée.
À compter de .NET 5, si une application s’exécute sur la mise à jour de mai 2019 de Windows 10 ou une version ultérieure, les bibliothèques .NET utilisent par défaut les API de globalisation ICU.
Notes
La mise à jour de mai 2019 de Windows 10 et versions ultérieures sont livrées avec la bibliothèque native ICU. Si le runtime .NET ne peut pas charger l’ICU, il utilise NLS à la place.
Vous pourriez voir des modifications dans votre application même si vous ne réalisez pas que vous utilisez des fonctionnalités de globalisation. Cette section répertorie l’un des changements de comportement que vous pourriez voir, mais il en existe également d’autres.
Examinez le code suivant qui appelle String.IndexOf(String) pour rechercher l’index du caractère nouvelle ligne dans une chaîne.
string s = "Hello\r\nworld!";
int idx = s.IndexOf("\n");
Console.WriteLine(idx);
6
.-1
.6
, cependant, les bibliothèques ICU sont toujours utilisées.Pour corriger ce code en effectuant une recherche ordinale au lieu d’une recherche sensible à la culture, appelez la surcharge IndexOf(String, StringComparison) et transmettez-la à StringComparison.Ordinal en tant qu’argument.
Vous pouvez exécuter des règles d’analyse du code CA1307 : Spécifier StringComparison pour la clarté et CA1309 : Utilisez stringComparison ordinal pour rechercher ces sites d’appel dans votre code.
Pour plus d’informations, consultez Changements de comportement lors de la comparaison de chaînes sur .NET 5+.
Considérez le code suivant qui met en forme une chaîne à l’aide du spécificateur de format de devise C
. La culture du thread actuel est définie sur une culture qui inclut uniquement la langue et non le pays ou la région.
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("de");
string text = string.Format("{0:C}", 100);
"100,00 €"
."100,00 ¤"
et utilise le symbole monétaire international au lieu de l’euro. Dans ICU, la conception est qu’une devise est une propriété d’un pays ou d’une région, et non d’une langue.La méthode DateTimeFormatInfo.GetShortestDayName(DayOfWeek) obtient le nom abrégé le plus court d’un jour spécifié de la semaine.
Ce changement a été introduit pour unifier le comportement de globalisation de .NET sur tous les systèmes d’exploitation pris en charge. Il permet également aux applications de grouper leurs propres bibliothèques de globalisation plutôt que de dépendre des bibliothèques intégrées du système d’exploitation.
.NET 5.0
Aucune action n’est requise de la part du développeur. Si vous souhaitez continuer à utiliser les API de globalisation NLS, vous pouvez définir un commutateur à l’exécution pour revenir à ce comportement. Pour plus d’informations sur les commutateurs disponibles, consultez l’article Globalisation et ICU de .NET.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Entrainement
Module
Mettre en forme des données alphanumériques en vue de leur affichage en C# - Training
Explorez les méthodes de base en C# pour mettre en forme des données alphanumériques.