IntPtr и UIntPtr реализуют IFormattable

IntPtr и UIntPtr теперь реализуют IFormattable. Функции, которые проверяют наличие поддержки IFormattable, теперь могут возвращать разные результаты для этих типов, поскольку они могут передавать описатель формата, а также язык и региональные параметры.

Описание изменения

В предыдущих версиях .NET IntPtr и UIntPtr не реализуют IFormattable. Функции, которые проверяют наличие поддержки IFormattable, могут возвращаться к простому вызову IntPtr.ToString или UIntPtr.ToString, что означает, что описатели формата, а также языки и региональные параметры не учитываются.

В .NET 5 и более поздних версиях IntPtr и UIntPtr реализуют IFormattable. Функции, которые проверяют наличие поддержки IFormattable, теперь могут возвращать разные результаты для этих типов, поскольку они могут передавать описатель формата, а также язык и региональные параметры.

Это изменение влияет на такие сценарии, как интерполяция строк и Console.WriteLine.

Причина изменения

IntPtr и UIntPtr теперь имеют языковую поддержку в C# помощью ключевых слов nint и nuint. Резервные типы были обновлены для обеспечения ближайшей четности (по возможности) с функциями, предоставляемыми другими примитивными типами, такими как System.Int32.

Представленные версии

5,0

Если вы не хотите использовать описатель формата или настраиваемые язык и региональные параметры при отображении значений этих типов, можно вызвать перегрузки IntPtr.ToString() и UIntPtr.ToString() для ToString().

Затронутые API

Невозможно обнаружить с помощью анализа API.