Freigeben über


IntPtr und UIntPtr implementieren IFormattable

IntPtr und UIntPtr implementieren jetzt IFormattable. Funktionen, die auf IFormattable-Unterstützung überprüfen, können nun unterschiedliche Ergebnisse für diese Typen zurückgeben, da sie einen Formatbezeichner und eine Kultur übergeben können.

Änderungsbeschreibung

In früheren Versionen von .NET implementierten IntPtr und UIntPtr nicht IFormattable. Funktionen, die auf IFormattable überprüfen, können auf das einfache Aufrufen von IntPtr.ToString oder UIntPtr.ToString zurückfallen, was bedeutet, dass Formatbezeichner und Kulturen nicht beachtet werden.

In .NET 5 und höheren Versionen implementieren IntPtr und UIntPtrIFormattable. Funktionen, die auf IFormattable-Unterstützung überprüfen, können nun unterschiedliche Ergebnisse für diese Typen zurückgeben, da sie einen Formatbezeichner und eine Kultur übergeben können.

Diese Änderung wirkt sich auf Szenarien wie interpolierte Zeichenfolgen und Console.WriteLineunter anderem aus.

Grund für Änderung

IntPtr und UIntPtr haben jetzt Sprachunterstützung in C# durch die Schlüsselwörter nint und nuint. Die Backing-Typen wurden aktualisiert, um, soweit möglich, eine annähernde Parität mit den Funktionen zu bieten, die von anderen primitiven Typen bereitgestellt werden, z. B. System.Int32.

Eingeführte Version

5.0

Wenn Sie nicht möchten, dass beim Anzeigen von Werten dieser Typen ein Formatbezeichner oder eine benutzerdefinierte Kultur verwendet wird, können Sie die Überladungen IntPtr.ToString() und UIntPtr.ToString() von ToString() aufrufen.

Betroffene APIs

Kann nicht über API-Analyse erkannt werden.