C# where keyword
<p>Our Indian overseas developers have written the following piece of code (C# 2.0): </p>

<pre><code>public abstract class ObjectMapperBase&lt;T&gt; where T : new()
{
    internal abstract bool UpdateObject(T plainObjectOrginal, T plainObjectNew, WebMethod fwm, IDbTransaction transaction);                     
}
</code></pre>

<p>Inheritor example:</p>

<pre><code>public abstract class OracleObjectMapperBase&lt;T&gt; : ObjectMapperBase&lt;T&gt; where T : new()
{
    internal override bool UpdateObject(T plainObjectOrginal,
                                     T plainObjectNew,
                                     WebMethod fwm,
                                     IDbTransaction transaction)
    {
       //Fancy Reflection code
    }
}
</code></pre>

<p>I've never seen the where keyword before after the class name. What does this do?</p>
