Tôi muốn tạo một bộ sưu tập trong VB.NET, nhưng tôi chỉ muốn nó chấp nhận các đối tượng thuộc một kiểu nhất định. Ví dụ, tôi muốn tạo một lớp có tên là "FooCollection" có vai trò như một bộ sưu tập theo mọi cách, nhưng chỉ chấp nhận các đối tượng kiểu "Foo".VB.NET Bộ sưu tập kiểu mạnh
Tôi nghĩ tôi có thể làm điều này sử dụng Generics, bằng cách sử dụng cú pháp sau:
Public Class FooCollection(Of type As Foo)
Inherits CollectionBase
...
End Class
Nhưng tôi nhận được một lỗi khi tôi biên dịch nó mà tôi "phải thực hiện một accessor mặc định", do đó rõ ràng có điều gì đó mất tích. Tôi không muốn chỉ định kiểu nó chấp nhận khi tôi khởi tạo - tôi muốn chính FooCollection cụ thể là nó chỉ chấp nhận các đối tượng Foo. Tôi đã nhìn thấy nó được thực hiện trong C# với một danh sách mạnh mẽ đánh máy, vì vậy có lẽ tất cả tôi đang tìm kiếm là cú pháp VB.NET.
Cảm ơn sự giúp đỡ của bạn!
EDIT: Cảm ơn bạn đã trả lời. Điều đó sẽ làm điều đó, nhưng tôi muốn có các classtype tên một cách nào đó, tôi thực sự thực hiện chính xác những gì tôi đang tìm kiếm với đoạn mã sau:
Public Class FooCollection
Inherits List(Of Foo)
End Class
Nó phụ thuộc vào những gì ông ấy đang làm. Danh sách được thiết kế để sử dụng nội bộ trong mã ứng dụng. Bạn nên tránh viết các API công cộng chấp nhận hoặc trả lại Danh sách - thay vào đó, sử dụng siêu lớp hoặc giao diện bộ sưu tập. –