この質問はこのサイトに属しているとは確信していませんが、私は建設的なものにしようとしています。
なぜコードIntPtrをstring.Formatの16進文字列に変換
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()));
出力
1234
000004D2
000004D2
フォーマットになるよう要求されたときの六角は、直接
IntPtr
引数に適用書式設定されていないのはなぜ
?機能を設計することに関して既知の議論はありますか?
このような設計に対する引数がない場合は、この問題をどのチャネルでマイクロソフトに報告する必要がありますか?
要求された場合、デバッガは16進数でIntPtr
の値を表示することにも注意してください。
私はそれが非常に直観的で、比較的頻繁にIntPtr
の値を印刷する方法であることがわかりました。私はまた、最初の行を使用し、明らかに16進数の結果を期待した他の人が書いたコードを見つけましたが、実際は結果が異なりました。また、ログメッセージの理解が複雑な問題に気付くまでに、しばらく時間がかかりました。