IntPtr et UIntPtr implémentent IFormattable

IntPtr et UIntPtr implémentent maintenant IFormattable. Les fonctions qui vérifient la prise en charge de IFormattable peuvent maintenant retourner des résultats différents pour ces types, car elles peuvent passer un spécificateur de format et une culture.

Description de la modification

Dans les versions précédentes de .NET, IntPtr et UIntPtr n’implémentent pas IFormattable. Les fonctions qui vérifient IFormattable peuvent se replier sur l’appel à IntPtr.ToString ou UIntPtr.ToString, ce qui signifie que les spécificateurs de format et les cultures ne sont pas respectés.

Dans .NET 5 et versions ultérieures, IntPtr et UIntPtr implémentent IFormattable. Les fonctions qui vérifient la prise en charge de IFormattable peuvent maintenant retourner des résultats différents pour ces types, car elles peuvent passer un spécificateur de format et une culture.

Cette modification a un impact sur les scénarios comme les chaînes interpolées et Console.WriteLine, entre autres.

Raison du changement

IntPtr et UIntPtr disposent maintenant de la prise en charge du langage en C# via les mots clés nint et nuint. Les types de stockage ont été mis à jour pour fournir une quasi-parité (dans la mesure du possible) avec les fonctionnalités exposées par d’autres types primitifs, comme System.Int32.

Version introduite

5,0

Si vous ne souhaitez pas qu’un spécificateur de format ou une culture personnalisée soit utilisé lors de l’affichage de valeurs de ces types, vous pouvez appeler les surcharges IntPtr.ToString() et UIntPtr.ToString() de ToString().

API affectées

Non détectable via l’analyse des API.