Notă
Accesul la această pagină necesită autorizare. Puteți încerca să vă conectați sau să modificați directoarele.
Accesul la această pagină necesită autorizare. Puteți încerca să modificați directoarele.
Notă
Grupurile de interes din comunitate s-au mutat acum din Yammer în Microsoft Viva Engage. Pentru a vă alătura unei comunități Viva Engage și a participa la cele mai recente discuții, completați Request acces la Finanțe și Operațiuni Viva Engage Comunitate și alegeți comunitatea la care doriți să vă asociați.
Sintaxa de limbă X++ oferă două tipuri compuse: matrice și containere. Aceste tipuri compuse sunt utile pentru agregarea valorilor de tipuri primitive. Cu toate acestea, nu puteți stoca obiecte de clasă în matrice sau containere.
Utilizați clase de colecție pentru a stoca obiecte. Acestea vă permit să creați matrice, liste, seturi, hărți șistructuri care pot conține orice tip de date, chiar și obiecte. Pentru o performanță maximă, C++ implementează aceste clase (sunt clase de sistem). Clasele de colectare erau cunoscute anterior ca clase de fundație. Clasele de colecție sunt Matrice, Listă, Hartă, Set și Structură.
- Matrice - Această clasă seamănă cu tipul matricei în limba X++, dar poate conține valori de orice tip unic, chiar și obiecte și înregistrări. Accesați obiectele într-o anumită ordine.
- Listă - această clasă conține elemente pe care le accesați secvențial. Spre deosebire de o matrice, clasa Listă furnizează o metodă addStart . La fel ca clasa Set , clasa Listă furnizează metodele getEnumerator și getIterator . Puteți utiliza un iterator pentru a insera și a șterge elemente dintr-un obiect Listă .
- Hartă - această clasă asociază o valoare cheie cu altă valoare.
- Set – această clasă conține valori de orice tip unic. Valorile nu sunt stocate în secvența în care le adăugați. În schimb, obiectul Set stochează valoarea într-un mod care optimizează performanța pentru metoda în curs. Un obiect Setare ignoră orice încercare de a adăuga o valoare pe care obiectul Set o stochează deja. Spre deosebire de clasa Matrice , clasa Setare furnizează metodele de intrare și eliminare .
- Struct - această clasă poate conține valori de mai multe tipuri. Este utilizat pentru a grupa informațiile despre o anumită entitate.
Constructorul pentru fiecare clasă de colecție, cu excepția Struct ia un parametru de tip care este un element al enum-ului de sistem Types . Instanța colecției poate stoca numai elementele de acel tip. Elementul de enumerare Type::AnyType este un caz special pe care nu-l puteți utiliza pentru a construi un obiect de colecție, cum ar fi un obiect Set . Valoarea nulă nu poate fi stocată ca element într-un obiect Set . În plus, null poate fi o cheie într-un obiect Hartă . Puteți itera printr-un obiect de colecție utilizând un iterator sau un enumerator. Iată exemple tipice care arată cum puteți obține un iterator.
new MapIterator(myMap)
myMap.getEnumerator()
Pentru Setarea obiectelor, dacă adăugați sau eliminați orice elemente după crearea unui iterator, instanța iterator nu mai poate fi utilizată pentru a citi din colecție sau a parcurge pașii.
Pentru obiectele Hartă , la fel ca pentru Setați obiectele, dacă eliminați orice elemente, iteratorul nu mai este valid. Cu toate acestea, un obiect MapIterator rămâne valid chiar și după un apel la metoda Map.insert , indiferent dacă cheia este nouă sau dacă cheia există deja și numai valoarea este actualizată în elementul Hartă . Codul care apelează Map.insert și depinde de obiectul iterator rămas valid poate să nu reușească dacă rulează ca .NET Framework CIL.
Utilizați clasele de colecție pentru a forma clase mai complexe. De exemplu, puteți implementa cu ușurință o stivă utilizând o listă în care adăugați întotdeauna elemente la începutul listei. Cel mai nou element ocupă apoi partea de sus a stivei.
De asemenea, puteți extinde clasele de colecție. De exemplu, puteți extinde clasa Listă pentru a crea o listă de înregistrări ale clienților în care operațiunile sunt sigure. În acest caz, clasa de colecție derivată acceptă doar înregistrările clientului.