Compartilhar via


IntPtr e UIntPtr implementam IFormattable

IntPtr e UIntPtr agora implementam IFormattable. As funções que verificam o suporte IFormattable agora podem retornar resultados diferentes para esses tipos, pois podem passar em um especificador de formato e uma cultura.

Descrição das alterações

Nas versões anteriores do .NET IntPtr e UIntPtr não implementam IFormattable. As funções que verificam IFormattable podem voltar a chamar apenas IntPtr.ToString ou UIntPtr.ToString, o que significa que os especificadores de formato e as culturas não são respeitados.

No .NET 5 e nas versões posteriores, IntPtr e UIntPtr implementam IFormattable. As funções que verificam o suporte IFormattable agora podem retornar resultados diferentes para esses tipos, pois podem passar em um especificador de formato e uma cultura.

Essa mudança afeta cenários como cadeias de caracteres interpoladas e Console.WriteLine, entre outros.

Motivo da alteração

IntPtr e UIntPtr agora têm suporte de linguagem em C# por meio das palavras-chave nint e nuint. Os tipos de suporte foram atualizados para fornecer quase paridade (quando possível) com a funcionalidade exposta por outros tipos primitivos como System.Int32.

Versão introduzida

5,0

Se não quiser que um especificador de formato ou cultura personalizada seja usado ao exibir os valores desses tipos, você poderá chamar as sobrecargas IntPtr.ToString() e UIntPtr.ToString() de ToString().

APIs afetadas

Não detectáveis com a análise de API.