创建对象集合

集合提供了跟踪对象很有用的方法。与数组不同,当增加和删除集合对象的成员时,它的大小不会改变。

例如,若要跟踪拖放到某一特定控件中的每个控件,并且不允许多次拖放任何控件。通过对集合进行管理可做到这点,该集合包含每个被拖放控件的引用:

Private Sub List1_DragDrop(Source As VB.Control, _
X As Single, Y As Single)
   Dim vnt As Variant
   Static colDroppedControls As New Collection
   For Each vnt In colDroppedControls
      '如果集合中有被拖放的控件,则
      '它已经被拖放到这儿一次。
      If vnt Is Source Then
         Beep
         Exit Sub
      End If
   Next
   '保存被拖放控件的引用。
   colDroppedControls.Add Source
   '在列表框中添加控件名。
   List1.AddItem Source.Name
End Sub

该示例使用 Is 操作符将 colDroppedControls 集合中的对象引用和包含被拖放控件引用的事件参数进行比较。Is 操作符可用来测试 Visual Basic 对象引用的一致性:如果两个不同引用的比较结果为同一对象,Is 操作符将返回 True

该示例还使用集合对象中的 Add 方法将对被拖放控件的引用放到集合中。

与数组不同,集合本身也是对象。变量 colDroppedControls 被声明为 As New,因此在代码中变量第一次被引用时将创建该集合类的实例。由于变量被声明为 Static,因此当事件过程结束时,该集合对象不会消失。

详细信息 请参阅《语言参考》的“Is 操作符”。

本章后面的“Visual Basic 集合对象”中将讨论 Collection 对象的属性和方法。

有关上述代码与需要使用数组的代码的比较,请参阅本章前面的“创建对象数组”。

要了解如何在自己集合类中包括集合对象,建立更强健的集合,请参阅本章后面的“创建自己的集合类”。

本章前面的“Visual Basic 中的对象”讨论如何建立和破坏对象。