title: IntPtr into hex string in string.Format
body: <p>Note, I am not quite sure this question belongs to this site but I try to be constructive.
  <br>
  <br>
  Why does the code</p>
  
  <pre><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()));
  </code></pre>
  
  <p>output</p>
  
  <pre><code>1234
  000004D2
  000004D2
  </code></pre>
  
  <p>Why isn't the hex formatting applied to the <code>IntPtr</code> argument directly, when requested so in formatting? Are there any known arguments against designing the functionality so - ?
  <br>If there are no arguments against such design then by which channel should I report this issue to Microsoft?</p>
  
  <p><br>Note also, that the debugger displays the <code>IntPtr</code> value in hex if requested so.
  <br>I find that it would be quite intuitive and relatively frequent way of printing out <code>IntPtr</code> values. I also have found code written by other people who used the first line and obviously expected the hex result, but actually the result was different. It also took some time for me to notice the issue, which complicated understanding the log messages.</p>