Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Gemeinschaftsinteressengruppen sind inzwischen von Yammer zu Microsoft Viva Engage gewechselt. Um einer Viva Engage Community beizutreten und an den neuesten Diskussionen teilzunehmen, füllen Sie das Formular Request access to Finance and Operations Viva Engage Community aus und wählen Sie die Community aus, der Sie beitreten möchten.
Die X++-Sprachsyntax stellt zwei zusammengesetzte Typen bereit: Arrays und Container. Diese zusammengesetzten Typen eignen sich zum Aggregieren von Werten primitiver Typen. Sie können Klassenobjekte jedoch nicht in Arrays oder Containern speichern.
Nutze Collection-Klassen , um Objekte zu speichern. Sie ermöglichen es Ihnen, Arrays, Listen, Sets, Maps und Strukturen zu erstellen, die jeden Datentyp und sogar Objekte enthalten können. Für maximale Leistung implementiert C++ diese Klassen (sie sind Systemklassen). Auflistungsklassen wurden zuvor als Foundation-Klassen bezeichnet. Die Auflistungsklassen sind Array, List, Map, Set und Struct.
- Array – Diese Klasse ähnelt dem Array-Typ in der X++-Sprache, kann jedoch Werte eines einzelnen Typs enthalten, sogar Objekte und Datensätze. Du greifst in einer bestimmten Reihenfolge auf Objekte zu.
- Liste – Diese Klasse enthält Elemente, auf die du nacheinander zugreifen kannst. Im Gegensatz zu einem Array stellt die List-Klasse eine addStart-Methode bereit. Wie die Set-Klasse stellt die List-Klasse die getEnumerator-Methode und die getIterator-Methode bereit. Sie können einen Iterator verwenden, um Elemente in ein List-Objekt einzufügen und daraus zu löschen.
- Map – Diese Klasse ordnet einen Schlüsselwert einem anderen Wert zu.
- Set – Diese Klasse enthält Werte eines beliebigen Typs. Werte werden nicht in der Reihenfolge gespeichert, in der du sie hinzufügst. Stattdessen speichert das Set-Objekt den Wert auf eine Weise, die die Leistung für die in-Methode optimiert. Ein Set-Objekt ignoriert jeden Versuch, einen Wert hinzuzufügen, den das Set-Objekt bereits speichert. Im Gegensatz zur Array-Klasse stellt die Set-Klassediein-Methode und die remove-Methode bereit.
- Struct – Diese Klasse kann Werte von mehr als einem Typ enthalten. Es wird verwendet, um Informationen über eine bestimmte Entität zu gruppieren.
Der Konstruktor für jede Auflistungsklasse mit Ausnahme von Struct verwendet einen type-Parameter, der ein Element der Types-Systemenumeration ist. Die Auflistungsinstanz kann nur Elemente dieses Typs speichern. Das Type::AnyType Enum-Element ist ein Spezialfall, den man nicht zum Aufbau eines Collection-Objekts, wie zum Beispiel eines Set-Objekts, verwenden kann. Der NULL-Wert kann nicht als Element in einem Set-Objekt gespeichert werden. Darüber hinaus kann null kein Schlüssel in einem Map-Objekt sein. Sie können ein Auflistungsobjekt durchlaufen, indem Sie einen Iterator oder Enumerator verwenden. Hier sind typische Beispiele, die zeigen, wie Sie einen Iterator erhalten können.
new MapIterator(myMap)
myMap.getEnumerator()
Bei Set-Objekten kann die Iterator-Instanz nicht mehr verwendet werden, um aus der Sammlung zu lesen oder sie zu entfernen, wenn man nach der Erstellung eines Iterators Elemente hinzufügen oder entfernen.
Für Map-Objekte, wie auch für Set-Objekte, ist der Iterator nicht mehr gültig, wenn man Elemente entfernt. Ein MapIterator-Objekt bleibt jedoch auch nach einem Aufruf der Map.insert-Methode gültig, unabhängig davon, ob der Schlüssel neu ist oder ob der Schlüssel bereits vorhanden ist und nur der Wert im Map-Element aktualisiert wird. Code, der Map.insert aufruft und davon abhängt, dass das Iteratorobjekt gültig bleibt, schlägt möglicherweise fehl, wenn er als .NET Framework CIL ausgeführt wird.
Verwenden Sie die Sammlungsklassen, um komplexere Klassen zu bilden. Zum Beispiel kann man einen Stack einfach implementieren, indem man eine Liste verwendet, bei der man immer Elemente am Anfang der Liste hinzufügt. Das neueste Element nimmt dann den oberen Rand des Stapels ein.
Sie können die Auflistungsklassen auch erweitern. Sie können z. B. die List-Klasse erweitern, um eine Liste von Kundendatensätzen zu erstellen, bei denen die Vorgänge typsicher sind. In diesem Fall akzeptiert die abgeleitete Sammlungsklasse nur Kundendatensätze.