Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota
Los grupos de interés de la comunidad ahora se han trasladado de Yammer a Microsoft Viva Engage. Para unirse a una comunidad de Viva Engage y participar en las últimas discusiones, rellene el formulario Solicitar acceso a la comunidad de Viva Engage de Finance and Operations y elija la comunidad a la que desea unirse.
La sintaxis del lenguaje X++ proporciona dos tipos compuestos: matrices y contenedores. Estos tipos compuestos son útiles para agregar valores de tipos primitivos. Sin embargo, no puede almacenar objetos de clase en matrices o contenedores.
Usa clases de colección para almacenar objetos. Le permiten crear matrices, listas, conjuntos, mapas y estructuras que pueden contener cualquier tipo de datos, incluso objetos. Para un rendimiento máximo, C++ implementa estas clases (son clases de sistema). Las clases de colección se conocían anteriormente como clases básicas. Las clases de colección son Array, List, Map, Set y Struct.
- Matriz : esta clase se parece al tipo de matriz en el lenguaje X++, pero puede contener valores de cualquier tipo, incluso objetos y registros. Accedes a los objetos en un orden específico.
- Lista – Esta clase contiene elementos a los que accedes secuencialmente. A diferencia de una matriz, la clase List proporciona un método addStart . Al igual que la clase Set , la clase List proporciona los métodos getEnumerator y getIterator . Puede usar un iterador para insertar y eliminar elementos de un objeto List .
- Map : esta clase asocia un valor clave con otro valor.
- Conjunto : esta clase contiene valores de cualquier tipo. Los valores no se almacenan en la secuencia en la que los añades. En su lugar, el objeto Set almacena el valor de una manera que optimiza el rendimiento del método in . Un objeto Set ignora cualquier intento de agregar un valor que el objeto Set ya está almacenando. A diferencia de la clase Array , la clase Set proporciona los métodos in y remove .
- Struct : esta clase puede contener valores de más de un tipo. Se utiliza para agrupar información sobre una entidad específica.
El constructor de cada clase de colección, excepto Struct , toma un parámetro de tipo que es un elemento de la enumeración del sistema Types . La instancia de colección solo puede almacenar elementos de ese tipo. El elemento enum Types::AnyType es un caso especial que no puedes usar para construir un objeto de colección, como un objeto Set . El valor null no se puede almacenar como un elemento en un objeto Set . Además, null no puede ser una clave en un objeto Map . Puede iterar a través de un objeto de colección mediante un iterador o enumerador. A continuación se muestran ejemplos típicos que muestran cómo puede obtener un iterador.
new MapIterator(myMap)
myMap.getEnumerator()
Para los objetos de Set , si añades o eliminas elementos después de crear un iterador, la instancia del iterador ya no puede usarse para leer o avanzar por la colección.
Para los objetos Mapa , como para los objetos Set , si eliminas algún elemento, el iterador deja de ser válido. Sin embargo, un objeto MapIterator sigue siendo válido incluso después de una llamada al método Map.insert , independientemente de si la clave es nueva o si la clave ya existe y solo se actualiza el valor en el elemento Map . Es posible que se produzca un error en el código que llama a Map.insert y depende de que el objeto iterador siga siendo válido si se ejecuta como CIL de .NET Framework.
Utiliza las clases de colección para formar clases más complejas. Por ejemplo, puedes implementar fácilmente una pila usando una lista donde siempre añades elementos al principio de la lista. El elemento más nuevo ocupa entonces la parte superior de la pila.
También puede ampliar las clases de colección. Por ejemplo, puede ampliar la clase List para crear una lista de registros de clientes en los que las operaciones tienen seguridad de tipos. En este caso, la clase de colección derivada solo acepta registros de clientes.