<p>In other words, is it correct to use:</p>

<pre><code>public class CustomerList : System.Collections.Generic.List&lt;Customer&gt;
{
    /// supposed to be empty
}
</code></pre>

<p>instead of:</p>

<pre><code>using CustomerList = System.Collections.Generic.List&lt;Customer&gt;
</code></pre>

<p>I'd rather use the first approach because I'd just define CustomerList once, and every time I needed a customer list I'd always use the same type. On the other hand, using the name aliasing approach not only forces me to have to redefine it everywhere, but also a different alias could be given every time someone wanted to use it (think of a big team), and thus cause the code to be less readable.</p>

<p>Please note that the intention in this case would never be to extend the class, just to create an alias.</p>

well, unless you are adding some functionality to the base class there is no point in creating a wrapper object.  I would go with number two if you really need to, but why not just create a variable?
```
```
List<Customer> customerList = new List<Customer>();
```
```