Seems in VB.NET you can't just not provide a null constructor, you have to explicitly call it private:

Private Sub New()
    ' This disallows the default constuctor and forces users to use
    ' the index constructor.
End Sub