Achtung - diese Seite ist in noch Bearbeitung und beschreibt eine Funktionalität der noch geändert werden kann!
public sealed class Array<TElement> where TElement : DataElement, new();
Wenn Arrays abgebildet werden müssen, kann die generische Klasse Array
verwendet werden. Als TElement
musse eine von DataElement
abgeleitete Klasse angegeben werden.
Es gibt keine Formatangeben für Array
, nur die Anzahl Einträge in dem Array müssen angegeben werden.
Diese können bei der Instanziierung angegeben werden:
private Array<LTableAbrZeitRowGroup> LTableAbrZeitRow { get; } = new Array<LTableAbrZeitRowGroup>(100);
Wenn das Array
in einer Gruppe verwendet wird, muss für die Anzahl Einträge das .NET Attribut ArrayFormatAttribute
verwendet werden:
private sealed class LPraeTypTabGroup : DataGroup { [ArrayFormat(7)] public Array<LPraeTypRowGroup> LPraeTypRow => GetMember<Array<LPraeTypRowGroup>>(); }
COBOL kennt die Besonderheit, das Indices welche bei einem Gruppenstufe definiert sind, auch bei den untergeordnete Datendefinitionen verwendet werden dürfen. Damit dies in C# auch möglich wird, stehen hierfür entsprechende Hilfsklassen zur Verfügung.
public sealed class Array<TElement, TGroup> where TElement : DataElement, new() where TGroup : DataGroup, new()
Diese Klasse ist gedacht für Member einer 1-Dimensionaler Gruppe. Als TElement
muss die von DatenElement
abgeleitete Klasse für das Member angegeben werden. AlsTGroup
muss die von DataGroup
abgeleitete Klasse für das Array angegeben werden.
Bei der Instanziierung werden neben den Verweis auf den Array-Instanz von TGroup
auch 2 Delegates erwartet, um das jeweilige Member abzufragen bzw. zu bestücken:
public Array(Array<TGroup> group, System.Func<TGroup, TElement> itemGetter, System.Action<TGroup, TElement> itemSetter = null);
Diese Klassen kennt ein Indexer mit 1 Argument um das jeweilige Datenelement abzufragen bzw. zu bestücken.
public TElement this[int index] { get; set; }
public sealed class Array<TElement, TGroup1, TGroup2> where TElement : DataElement, new() where TGroup1 : DataGroup, new() where TGroup2 : DataGroup, new()
Diese Klasse ist gedacht für Member einer 2-Dimensionaler Gruppen. Als TElement
muss die von DatenElement
abgeleitete Klasse angegeben werden. AlsTGroup1
bzw. TGroup2
muss die von DataGroup
abgeleitete Klasse für die beiden Arrays angegeben werden.
Bei der Instanziierung werden neben den Verweis auf den Array-Instanz von TGroup1
auch 3 Delegates erwartet, um von TGroup1
die Array-Instanz von TGroup2
abzufragen, und um das jeweilige Member an TGroup2
abzufragen bzw. zu bestücken:
public Array(Array<TGroup1> group, System.Func<TGroup1, Array<TGroup2>> groupGetter, System.Func<TGroup2, TElement> itemGetter, System.Action<TGroup2, TElement> itemSetter = null)
Diese Klassen kennt ein Indexer mit 2 Argumente um das jeweilige Datenelement abzufragen bzw. zu bestücken.
public TElement this[int index1, int index2] { get; set; }