|
![]() |
#1 |
Участник
|
Можно сделать так, как советует IvanOFF. Но если передаваемых параметров много, то для каждого придется делать и вызывать метод parm*. Если класс А выполняется на клиенте, а класс В - на сервере (как это обычно и делается), то будет много клиент-серверных вызовов, что негативно скажется на производительности. Поэтому лучше делать следующим способом.
В classDeclaration класса А объявляете макрос (например, CurrentList) со списокм параметров (этот же макрос можно использовать для pack/unpack). Точно такой же макрос объявляете в classDeclaration класса В. Естественно, надо не забыть про объявление самих переменных. Затем в классе В реализуете метод, например setParams, принимающий контейнер. В классе А надо просто вызвать этот метод для передачи параметров. Пример: X++: class A extends RunBase { int myVar; NoYes newYear; #localmacro.CurrentList myVar, newYear #endmacro } void run() { B b = new B(); ... b.setParams(#CurrentList); } X++: class B { int myVar; NoYes newYear; #localmacro.CurrentList myVar, newYear #endmacro } void setParams(container _params) { [#CurrentList] = _params; } |
|