2.4 :call()
Mit Hilfe der Methode :call() lassen sich beliebige eingebaute als auch benutzerdefinierte Methoden aufrufen. Dieses ist z.B. dann notwendig, wenn die Methode, die aufgerufen werden soll, berechnet wird oder in einer Variablen gespeichert ist. Der Aufruf von :call() ruft indirekt die angegebene Methode auf. Der Rückgabewert entspricht dem der indirekt aufgerufenen Methode. Beim Aufruf über :call() können jedoch nur maximal 15 weitere Parameter an die indirekt aufgerufene Methode übergeben werden. Hierauf ist beim Design von Methoden zu achten. Die Methode :call() kann auch eingebaute Methoden wie etwa :insert() oder :delete() aufrufen.
Definition
anyvalue :call
(
method Method input
{ ,anyvalue Arg1 input }
...
{ ,anyvalue Arg15 input }
)
Parameter
- method Method input
- In diesem Parameter wird die aufzurufende Methode angegeben.
- anyvalue Par1 input
…
anyvalue Par15 input - In diesen optionalen Parametern werden die Parameter der aufzurufenden Methode angegeben. Die Anzahl der angegebenen Parameter muss dabei der Anzahl der Parameter der aufzurufenden Methode entsprechen.
Rückgabewert
Rückgabewert der aufgerufenen Methode.
Objekte mit dieser Methode
Alle Objekte, die benutzerdefinierte Methoden haben können bzw. eingebaute Methoden haben.
Beispiel
dialog Example
record Rec
{
string String;
rule void SomeMethod() { }
rule boolean Display(object Obj input) { }
}
on dialog start
{
Rec:call(:SomeMethod); // ruft die Methode SomeMethod auf
Rec:call(:Display, this); // ruft die Methode Display
// mit dem Dialog als Objekt auf
}
Siehe auch
Method