title: TryCast fails where DirectCast works (.NET 4.0)
body: <p>I find this behavior of TryCast in .NET 4.0 / VS 2010 rather confusing.</p>
  
  <p>In my understanding TryCast works like DirectCast, but will return Nothing instead of throwing an exception if a cast is not possible.</p>
  
  <p><strong>VS 2010 / .NET 4</strong></p>
  
  <pre><code>?TryCast(CType(1, Object), String)
  Nothing
  ?DirectCast(CType(1, Object), String)
  "1"
  </code></pre>
  
  <p><strong>VS 2008 / .NET 3.5</strong></p>
  
  <pre><code>?TryCast(CType(1, Object), String)
  Nothing
  ?DirectCast(CType(1, Object), String)
  Cannot convert to 'String'.
  </code></pre>
  
  <p>The .NET 3.5 results are consistent with what I believe TryCast does... .NET 4 however is not.</p>
  
  <p>Can someone please point me in the best direction to securely cast an object to String in .NET 4?</p>