Administrar objetos propios con colecciones (Visual Basic)
Las colecciones proporcionan un método ideal para administrar diferentes objetos. Puede agregar y quitar objetos de una colección, recuperarlos basándose en un índice o en una clave y utilizar Instrucción For Each...Next (Visual Basic) para recorrer en iteración los elementos de la colección.
Colecciones de tipo no seguras
No obstante, la propia flexibilidad de las colecciones puede socavar la solidez de las clases. Por ejemplo, la colección proporcionada por Visual Basic almacena todos sus elementos como de tipo Object, por lo que puede agregar un elemento de cualquier tipo de datos. No hay ningún método de protección contra los tipos de datos impropios que se agregan y cuando tiene acceso a un elemento, debe convertirlo de Object en el tipo de datos deseado.
Colecciones especializadas
.NET Framework proporciona varias alternativas a la colección de Visual Basic. El espacio de nombres System.Collections contiene clases de colección con una funcionalidad específica, como una cola o una lista ordenada, y el espacio de nombres System.Collections.Specialized contiene clases de colección de naturaleza especializada, como HybridDictionary.
Colecciones de tipo seguras
Para evitar los inconvenientes de los elementos de tipo Object, puede utilizar las colecciones genéricas del espacio de nombres System.Collections.Generic. Estas colecciones proporcionan la seguridad de tipos y le permiten limitar los elementos de una colección a sólo un tipo de datos específico.
Enfoques sobre el uso de colecciones
Existen tres enfoques generales que se pueden seguir para implementar la administración de objetos mediante colecciones. Considere una aplicación que define una clase widgetRepository que organiza y expone los objetos widget para los componentes de cliente. Para implementar widgetRepository con una colección, puede utilizar una de las estrategias siguientes.
Utilice una clase de colección. En la clase widgetRepository, declare una variable widgetsColl como una instancia de la clase Collection o de una de las clases de los espacios de nombres System.Collections, System.Collections.Generic o System.Collections.Specialized. Haga que la variable sea pública y utilice la palabra clave New (Operador, Visual Basic) para crear una instancia de la colección. Para obtener más información, vea Cómo: Definir colecciones en clases propias (Visual Basic).
Herede una clase base de colección. Implemente una clase widgetsColl propia mediante herencia de la clase CollectionBase. En la clase widgetRepository, defina una instancia de la clase widgetsColl y una propiedad que devuelva esta instancia. Para obtener más información, vea Cómo: Definir colecciones en clases propias (Visual Basic).
Escriba la colección. Implemente la funcionalidad de colección en la clase widgetRepository escribiendo clases y procedimientos adecuados. Este enfoque es especialmente útil si desea disponer de la funcionalidad de colección en la clase pero no puede heredar de ninguna de las clases de colección existentes. Por ejemplo, esto puede ser posible en el caso poco frecuente de que su clase necesitara heredar de una clase que no fuera una clase de colección. Como no puede heredar de más de una clase, tendría que definir e implementar miembros de colección.
Vea también
Referencia
System.Collections.Specialized