Поделиться через


Управление объектами с помощью коллекций (Visual Basic)

Коллекции — это идеальное средство для управления набором объектов. Можно добавлять объекты в коллекцию, удалять и извлекать их оттуда по индексу или ключу и просматривать элементы коллекции с помощью Оператор For Each... Next (Visual Basic).

Нетипобезопасные коллекции

В гибкости коллекций заключается угроза надежности классов. Например, коллекция, предоставляемая Visual Basic хранит все его элементы как тип Object, поэтому в нее можно добавить элемент любого типа данных. Защита от добавления неверных типов данных отсутствует, поэтому при доступе к элементу необходимо преобразовать его из Object к необходимому типу.

Специализированные коллекции

.NET Framework предоставляет несколько альтернатив коллекции Visual Basic. Пространство имен System.Collections содержит классы коллекций с определенной функциональностью, такие как очередь или отсортированный список, а пространство имен System.Collections.Specialized содержит коллекцию классов специализированного характера, например HybridDictionary.

Типобезопасные коллекции

Чтобы устранить недостатки элементов типа Object, можно использовать универсальные коллекции пространства имен System.Collections.Generic. Эти коллекции являются типобезопасными и позволяют ограничить элементы коллекции только одним конкретным типом данных.

Подходы к использованию коллекций

Существуют три общих подхода к реализации управления объектами с помощью коллекций. Рассмотрим приложение, определяющее класс widgetRepository, который формирует и предоставляет объекты widget клиентским компонентам. Чтобы реализовать widgetRepository с помощью коллекций, можно использовать одну из следующих стратегий.

  • Использование класса коллекций. В классе widgetRepository объявите переменную widgetsColl как экземпляр класса Collection или одного из классов в пространстве имен System.Collections, System.Collections.Generic или System.Collections.Specialized. Сделайте переменную открытой и используйте ключевое слово Оператор New (Visual Basic) для создания экземпляра коллекции. Дополнительные сведения см. в разделе Практическое руководство. Определение коллекций в классах (Visual Basic).

  • Наследование базового класса коллекции. Реализуйте собственный класс widgetsColl посредством наследования от CollectionBase. В классе widgetRepository определите экземпляр класса widgetsColl и свойство, возвращающее данный экземпляр. Дополнительные сведения см. в разделе Практическое руководство. Определение коллекций в классах (Visual Basic).

  • Самостоятельное создание коллекции. Реализуйте функциональные возможности коллекции в классе widgetRepository, написав соответствующие классы и процедуры. Этот подход наиболее предпочтителен, если класс должен обладать функциональными возможностями коллекции, но не может наследовать ни от какого класса типа коллекции. Это возможно в редких случаях, например, когда требуется наследование класса из класса, отличного от класса коллекции. Поскольку он не может наследоваться более чем от одного класса, необходимо определить и реализовать члены коллекции.

См. также

Ссылки

Collection

System.Collections

System.Collections.Generic

System.Collections.Specialized

Основные понятия

Управление группами объектов в Visual Basic