title: Why does (int)(object)10m throw "Specified cast is not valid" exception?
body: <p>Why this explicit cast does throw <code>Specified cast is not valid.</code> exception ?</p>
  
  <pre><code>decimal d = 10m;
  object o = d;
  int x = (int)o;
  </code></pre>
  
  <p>But this works:</p>
  
  <pre><code>int x = (int)(decimal)o;
  </code></pre>