Ich möchte eine Sammlung in VB.NET erstellen, aber ich möchte nur Objekte eines bestimmten Typs akzeptieren. Ich möchte zum Beispiel eine Klasse namens "FooCollection" erstellen, die sich in jeder Hinsicht wie eine Sammlung verhält, aber nur Objekte vom Typ "Foo" akzeptiert.VB.NET Strong-typisierte Sammlung
Ich dachte, ich dies mit Generika tun konnte, mit der folgenden Syntax:
Public Class FooCollection(Of type As Foo)
Inherits CollectionBase
...
End Class
Aber ich erhalte eine Fehlermeldung, wenn ich es kompilieren, dass ich „eine Standard-Zugriffs implementieren müssen“, so klar es ist etwas fehlt. Ich möchte nicht den Typ angeben, den ich akzeptiere, wenn ich instanziiere - Ich möchte die FooCollection selbst so spezifisch machen, dass sie nur Foo-Objekte akzeptiert. Ich habe es in C# mit einer stark typisierten Liste gesehen, also suche ich vielleicht nur nach der Syntax von VB.NET.
Danke für Ihre Hilfe!
EDIT: Danke für die Antwort. Das würde es tun, aber ich wollte den classtype eine bestimmte Art und Weise benannt haben, ich erreichen eigentlich genau das, was ich für den folgenden Code suchen:
Public Class FooCollection
Inherits List(Of Foo)
End Class
Es hängt davon ab, was er tut. Die Liste ist für den internen Gebrauch innerhalb des Anwendungscodes vorgesehen. Sie sollten es vermeiden, öffentliche APIs zu schreiben, die die Liste akzeptieren oder zurückgeben, indem Sie stattdessen eine Superklasse oder eine Sammlungsschnittstelle verwenden. –