IntPtr in hex-string in der Zeichenkette.Format

Hinweis, ich bin nicht ganz sicher, diese Frage gehört zu dieser site, aber ich versuche konstruktiv zu sein.

Warum funktioniert der code

IntPtr ptr = new IntPtr(1234);
Console.WriteLine(string.Format("{0:X8}", ptr));
Console.WriteLine(ptr.ToString("X8"));
Console.WriteLine(string.Format("{0:X8}", ptr.ToInt32()));

Ausgabe

1234
000004D2
000004D2

Warum ist nicht die hex-Formatierung für die IntPtr argument direkt, wenn der Antrag so in der Formatierung? Gibt es irgendwelche bekannten Argumente gegen die Gestaltung, die Funktionalität so ?

Wenn es keine Argumente gegen eine solche Konstruktion dann durch welchen Kanal soll ich melden Sie dieses Problem an Microsoft?

Beachten Sie auch, dass der debugger zeigt die IntPtr Wert in hex, falls gefordert.

Ich finde, es wäre sehr intuitiv und relativ häufige Art des Drucks aus IntPtr Werte. Ich habe auch gefunden code geschrieben von anderen Menschen, die die erste Zeile und offensichtlich erwartet die hex-Folge, aber eigentlich war das Ergebnis anders. Es brauchte auch einige Zeit für mich zu bemerken, das Thema, das kompliziert das Verständnis der log-Meldungen.

Schreibe einen Kommentar