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.