Fangen wir mal ganz langsam an. Was soll folgendes Konstrukt im Init-Case erreichen?
Erst ein Array der Größe "Dimension" erzeugen, und dann aus diesem Array ein Array der Größe "Dimension" ausschneiden. Folge: Ausgangsarray enthält unabhängig von "Dimension" null Elemente.
Gruß, Jens
EDIT: Leider musste man raten, was nicht so richtig funktioniert,:(aber ich denke, ich weiss, was du meinst:
Wenn du z.B. ein Array der Länge Null an deinen FIFO anhängen willst, dann schlägt der folgende Case zu:
So, jetzt nimmst du das einzelne Double-Element (das den Standard-Wert Null hat), baust daraus ein Array (das hat logischerweise die Länge 1) und hängst es hinten an deinen FIFO dran. Ich nehme mal an, das wolltest du sooo nicht.
Empfehlung: Erstelle 2 "Set" Cases, einen, der ein Array anhängt, und einen, der ein einzelnes Element anhängt. Zwischen diesen Fällen kannst du nämlich mit deiner Case-Struktur nicht unterscheiden.
EDIT 2: "Get" Case würde ich so gestalten, somit bekommst du wenigstens das, was im Puffer ist, wenn du mehr Elemente anforderst als im Puffer sind. Ach ja, das +1 kannst du auch weglassen, einfach mal das Kontext-Menü bei der Coerce-Funktion öffnen, man kann "Include Upper Limit" auswählen.