Uwaga, nie jestem całkiem pewien, że to pytanie należy do tej strony, ale staram się być konstruktywna.
Dlaczego koduIntPtr na ciąg szesnastkowy w ciągu znaków.Format
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()));
wyjściowego
1234
000004D2
000004D2
Dlaczego nie jest hex formatowanie zastosowane do IntPtr
argumentu bezpośrednio, gdy zwróciła się więc formatowania? Czy istnieją jakieś znane argumenty przemawiające przeciwko projektowaniu takiej funkcjonalności?
Jeśli nie ma żadnych argumentów przeciwko takiemu projektowi, to według którego kanału powinienem zgłosić ten problem firmie Microsoft?
Należy również zauważyć, że debugger wyświetla wartość IntPtr
w heksagonie, jeśli jest to wymagane.
Uważam, że byłby to dość intuicyjny i stosunkowo częsty sposób drukowania wartości IntPtr
. Znalazłem również kod napisany przez innych ludzi, którzy użyli pierwszej linii i oczywiście oczekiwali wyniku heksadecymalnego, ale w rzeczywistości wynik był inny. Zajęło mi to trochę czasu, zanim zauważyłem problem, który skomplikował rozumienie komunikatów logów.