title: VB.NET Strong-typed collection
body: <p>I want to create a collection in VB.NET, but I only want it to accept objects of a certain type. For example, I want to create a class called "FooCollection" that acts like a collection in every way, but only accepts objects of type "Foo".</p>
  
  <p>I thought I could do this using generics, using the following syntax:</p>
  
  <pre><code>    Public Class FooCollection(Of type As Foo)
          Inherits CollectionBase
  
          ...
  
      End Class
  </code></pre>
  
  <p>But I get an error when I compile it that I "must implement a default accessor", so clearly there's something missing. I don't want to specify the type it accepts when I instantiate - I want the FooCollection itself to specific that it only accepts Foo objects. I've seen it done in C# with a strong-typed list, so maybe all I'm looking for is VB.NET syntax.</p>
  
  <p>Thanks for your help!</p>
  
  <p><strong>EDIT: Thanks for the answer. That would do it, but I wanted to have the classtype named a certain way, I actually accomplished exactly what I was looking for with the following code:</strong></p>
  
  <pre><code>Public Class FooCollection
      Inherits List(Of Foo)
  
  End Class
  </code></pre>