title: What does this mean: ClassName<T> where T : class
body: <p>I've got this class:</p>
  
  <pre><code>public static class Repository&lt;T&gt; where T : class
  {
      ....
  }
  </code></pre>
  
  <p>I understand <code>public</code> and <code>static</code> and <code>class</code> and <code>Repository&lt;T&gt;</code>,but I'm not understanding this:</p>
  
  <pre><code>where T : class
  </code></pre>
  
  <p>Is <code>Repository</code> extending or implementing <code>class</code>?  Or does the <code>: class</code> refer back to the type <code>&lt;T&gt;</code>?</p>
  
  <p><strong>!!ALSO!!:</strong></p>
  
  <p>And, if I have an abstract base class <code>DataAccessBase</code> that I want this class <code>Repository</code> to inherit, how do I do that? </p>