In den folgenden Fällen kommen Regeln für Referenzkompatibilität zur Anwendung:
- Ein Parameter hat den Änderungswert 'inOut'.
- Ein Parameter befindet sich in der Funktion, die durch die Eigenschaft 'onConstructionFunction' eines JSF-Handlers angegeben wird.
- Es wird eine Referenzvariable zugeordnet, übergeben oder zurückgegeben (siehe 'Referenzvariablen').
In EGL gelten die folgenden Regeln für Referenzkompatibilität:
- Zwei Werte sind nur dann referenzkompatibel, wenn sie sich auf denselben Basiselementtyp beziehen. Beachten Sie, dass CHAR(7) nicht
mit CHAR(8) referenzkompatibel ist.
- Ein nicht strukturierter Datensatz ist nur dann mit einem anderen nicht strukturierten Datensatz referenzkompatibel, wenn sämtliche Felder
in der Quelle dieselben Typen wie alle Felder im Ziel aufweisen.
- Ein strukturierter Datensatz ist mit einem anderen strukturierten Datensatz (oder einer Variablen vom Typ CHAR) nur dann referenzkompatibel, wenn der
Quellendatensatz mindestens die gleiche Länge hat wie der Zieldatensatz. Die Kompatibilität einzelner Felder stellt kein Problem dar.
Sie können eine Variable vom Typ 'Wert' einer Referenzvariablen zuordnen.
In diesem Fall kopiert EGL den Wert der Nicht-Referenzvariablen in einen neuen Speicherbereich und verweist die Referenzvariable auf diesen neuen Bereich. Die
beiden Typen müssen zuordnungskompatibel sein. Der Quellentyp wird in den Zieltyp konvertiert, wenn die beiden Typen voneinander abweichen.
Sie können eine Referenzvariable einer Variablen vom Typ 'Wert' zuordnen. In diesem Fall nimmt die Nicht-Referenzvariable den Wert an, auf den die Referenzvariable verweist. Die
beiden Typen müssen zuordnungskompatibel sein. Der Quellentyp wird in den Zieltyp konvertiert, wenn die beiden Typen voneinander abweichen.
Eine Zuordnung von Wert zu Referenz findet auch dann statt, wenn Sie eine Funktion mit einem der folgenden Argumente aufrufen:
- Einem Referenztypargument, das mit dem Parameter 'in' übereinstimmt.
- Einem Werttypargument, das mit einem Referenzparameter übereinstimmt.