title: Best practice for converting an object to string
body: <p>I've seen a number of ways of converting an <code>Object</code> to a <code>String</code> in .NET, typically for displaying the object's value to the user when the object type is not known.</p>
  
  <p>These include:</p>
  
  <pre><code>Dim x as Object = 3
  Dim y as Object = Nothing
  Dim z as Object = DBNull.Value
  Dim l_displayString As String
  
  l_displayString = "" &amp; x &amp; "" &amp; y &amp; "" &amp; z
  l_displayString = If(x, "").ToString() &amp; If(y, "").ToString() &amp; If(z, "").ToString()
  l_displayString = Convert.ToString(x) &amp; Convert.ToString(y) &amp; Convert.ToString(z)
  </code></pre>
  
  <p>Is there a method which is recommended by Microsoft, or do these all compile down to the same byte code?</p>
  
  <p>EDIT:  </p>
  
  <p>Let me expand the question a little to include:  </p>
  
  <p>What are the differences between these methods? I can't see what's going on under the hood, so it'd be nice to know if there is any performance benefit of one over the others. In some cases, these calls may be made several thousand times (such as reading from a large table) and shaving off a couple seconds can make a big UX impact.</p>