C# Constructor constratint to types that support comparison operators
<p>How do I create a class to store a range of any type provided that the type allows comparison operators to ensure that that the first value provided to the constructor is less than the second?</p>

<pre><code>public class Range&lt;T&gt; where T : IComparable&lt;T&gt;
{
    private readonly T lowerBound;
    private readonly T upperBound;

    /// &lt;summary&gt;
    /// Initializes a new instance of the Range class
    /// &lt;/summary&gt;
    /// &lt;param name="lowerBound"&gt;The smaller number in the Range tuplet&lt;/param&gt;
    /// &lt;param name="upperBound"&gt;The larger number in the Range tuplet&lt;/param&gt;
    public Range(T lowerBound, T upperBound)
    {
        if (lowerBound &gt; upperBound)
        {
            throw new ArgumentException("lowerBlound must be less than upper bound", lowerBound.ToString());
        }

        this.lowerBound = lowerBound;
        this.upperBound = upperBound;            
    }
</code></pre>

<p>I am getting the error:</p>

<pre><code>Error   1   Operator '&gt;' cannot be applied to operands of type 'T' and 'T'  C:\Source\MLR_Rebates\DotNet\Load_MLR_REBATE_IBOR_INFO\Load_MLR_REBATE_IBOR_INFO\Range.cs   27  17  Load_MLR_REBATE_IBOR_INFO
</code></pre>
