Управление объектами с помощью коллекций (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, написав соответствующие классы и процедуры. Этот подход наиболее предпочтителен, если класс должен обладать функциональными возможностями коллекции, но не может наследовать ни от какого класса типа коллекции. Это возможно в редких случаях, например, когда требуется наследование класса из класса, отличного от класса коллекции. Поскольку он не может наследоваться более чем от одного класса, необходимо определить и реализовать члены коллекции.
См. также
Ссылки
System.Collections.Specialized