C# Casting Generic Type
<p>I have a generic interface IConstrained which is implemented by the generic Constrained class. When I attempt to do the code below I get an invalid cast exception.</p>

<pre><code>IConstrained&lt;decimal&gt; decimalLimit = new Constrained&lt;decimal&gt;(1);
IConstrained&lt;IComparable&gt; comparableLimit = (IConstrained&lt;IComparable&gt;) decimalLimit;
</code></pre>

<p>Why is it not possible to do this if decimal implements IComparable? What would be the correct way to do this? Thanks.</p>
