Why does the compiler allow Convert.ToString() to be assigned to an integer?
<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>