DataGroup

Achtung - diese Seite ist in noch Bearbeitung und beschreibt eine Funktionalität der noch geändert werden kann!

Für den Fall das COBOL Gruppenstufen abgebildet werden müssen, kann eine von der abstrakter Basisklasse DataGroup abgeleitete Klasse definiert werden. Diese enthält dann für jedes Datenelement eine property:

sealed class VerteilRecord : DataGroup
{
	public Numeric<System.Double, BetragFormat> Steuer { get...; set...; }
	public Numeric<System.Double, BetragFormat> Zuschlag { get...; set...; }
...
}

Aus den definierten Properties leitet die Basisklasse DataGroup dann die Struktur ab, und berücksichtigt diese z.B. beim Initialize oder Bytes.

Für die Implementierung der Properties werden die Methoden GetMember und SetMember von der Basisklasse DataGroup verwendet:

public Numeric<System.Double, BetragFormat> Steuer
{
	get => GetMember<Numeric<System.Double, BetragFormat>>();
	set => SetMember(value);
}

Redefines

Um REDEFINES aus COBOL Datendefinitionen abzubilden, kann das .NET Attribut RedefinesAttribute verwendet werden:

private sealed class IndicesGroup : DataGroup
{
	public ZwEbnIndicesGroup ZwEbnIndices => GetMember<ZwEbnIndicesGroup>();
 
	[Redefines(nameof(ZwEbnIndices))]
	public ZwEbnTabGroup ZwEbnTab => GetMember<ZwEbnTabGroup>();
}

Eigenschaften/Methoden

Formatangaben

Es gibt kein Formatangeben für DataGroup.

Methoden

GetMember

protected T GetMember<T>([CallerMemberName] string name = null)
	where T : DataElement;

Liefert das Datenelement name. Wenn name nicht angegeben wird der Namen des Aufrufes verwendet.

SetMember

protected void SetMember<T>(T value, [CallerMemberName] string name = null)
	where T : DataElement;

Bestückt das Datenelement name. Wenn name nicht angegeben wird der Namen des Aufrufes verwendet.

SizeOf

protected static int SizeOf<TGroup>()
	where TGroup : DataGroup, new();

Liefert die Anzahl Bytes welche für die angegebene TGroup benötigt werden.

Eigenschaften

cobmig:cs:interop:datagroup · Zuletzt geändert: 25.11.2019 14:55

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum