我想在VB.NET中创建一个集合,但我只希望它接受某种类型的对象。例如,我想创建一个名为“FooCollection”的类,它以各种方式充当集合,但只接受类型为“Foo”的对象。VB.NET强类型集合
我想我可以做到这一点使用仿制药,使用的语法如下:
Public Class FooCollection(Of type As Foo)
Inherits CollectionBase
...
End Class
,但我得到当我编译它,我“必须实现一个默认的访问”错误,因此显然有什么东西不见了。我不想指定它在我实例化时接受的类型 - 我希望FooCollection本身指定它只接受Foo对象。我已经看到它在C#中使用强类型列表完成,所以我正在寻找的可能是VB.NET语法。
感谢您的帮助!
编辑:谢谢你的答案。这将做到这一点,但我想有CLASSTYPE名为一定的方式,我其实只是做正是我一直在寻找与下面的代码:
Public Class FooCollection
Inherits List(Of Foo)
End Class
这要看他在做什么。列表旨在供应用程序代码内部使用。您应该避免编写接受或返回列表的公共API,而应考虑使用超类或集合接口。 –
2012-09-19 10:28:32