IntPtr 和 UIntPtr 已经实现了 IFormattable。 检查 IFormattable 支持的功能现在可能返回这些类型的不同结果,因为它们可能以格式说明符和区域性的形式传递。
更改描述
在早期版本的 .NET 中,IntPtr 和 UIntPtr 不实现 IFormattable。 检查 IFormattable 的函数可回退到仅调用 IntPtr.ToString 或 UIntPtr.ToString,这意味着不会遵循格式说明符和区域性。
在 .NET 5 及更高版本中, IntPtr 并 UIntPtr 实现 IFormattable。 检查 IFormattable 支持的功能现在可能返回这些类型的不同结果,因为它们可能以格式说明符和区域性的形式传递。
此更改会影响例如内插字符串和Console.WriteLine等情境。
更改原因
IntPtr 和 UIntPtr 现在通过 nint 和 nuint 关键字在 C# 中提供了语言支持。 更新了后备类型,以通过其他基元类型(例如 System.Int32)公开的功能提供接近奇偶校验(如果可能)。
已引入的版本
5.0
建议的措施
如果不希望在显示这些类型的值时使用格式说明符或自定义区域性,则可以调用 IntPtr.ToString() 的 UIntPtr.ToString() 和 ToString() 重载。
受影响的 API
无法通过 API 分析检测。