如何:在类中定义集合 (Visual Basic)

在一个类中可以添加一个集合以管理该类使用的对象组。 实现此功能的最简单的方法是将类型为 Collection 的公共变量添加到类中。 考虑名为 widgetRepository 的假设类,该类管理和公开 widget 对象。 可以创建一个 widgetColl 变量来引用 widget 集合,如下面的过程所述。

定义简单集合

在类中定义简单集合

  • 创建一个公共变量作为对象的集合。

    Public Class widgetRepository
        Public widgetColl As New Microsoft.VisualBasic.Collection()
        ' Insert code to implement additional functionality.
    End Class
    

    现在类 widgetRepository 有一个公共集合,可以向其添加 widget 对象。 然后可以使用 For Each...Next 语句 (Visual Basic) 来处理集合元素,如下面的代码所示。

    For Each aWidget As widget In widgetColl
        ' Insert code to process widgetColl elements
    Next aWidget
    

    前面示例中定义的 widgetColl 集合不是“强类型”,这意味着可以向其添加任何类型的对象,而不只是 widget 对象。 这可能导致类型安全问题。 例如,假设向集合添加了一个 String,如下面的代码所示。

    Dim notWidget As String = "This is not a widget object!"
    widgetColl.Add(notWidget)
    

    如果这样做,前面过程中的 For Each 循环在运行时会引发一个 ArgumentException 异常,这是因为集合中有一个元素不是 widget 类型。

    我们建议在需要确保类型安全时定义泛型类。 有关更多信息及示例,请参见如何:定义类型安全集合 (Visual Basic)

请参见

任务

如何:定义类型安全集合 (Visual Basic)

参考

Collection

Option Strict 语句

概念

Visual Basic 中的集合

Visual Basic 中的泛型类型 (Visual Basic)