title: Why does the compiler allow Convert.ToString() to be assigned to an integer?
body: <p>I accidentally stumbled across something similar to the following in my code, it compiles fine but then obviously bombs at runtime:</p>
  
  <pre><code>dynamic fiftySixDynamic = 56;
  int fiftySixInt = System.Convert.ToString(fiftySixDynamic);
  </code></pre>
  
  <p>Every overload of <strong>Convert.ToString()</strong> returns a string, so surely this shouldn't compile? What's going on here?</p>