01.12.2011, 16:31 | #1 |
Ищущий знания...
|
Ax 3.0 SP 3. Интересный факт с передачей параметров во внутренний метод
Разбираясь с одним вопросом (комуй интересно вот с этим) случайно наткнулся на интересный факт
компилятор не проверяет передаваемые параметры в методах, которые написаны внутри других методов (или внутри джоба). вот пример: X++: static void Job685(Args _args) { void mthd1(int _i) { int i; ; i++; } ; mthd1(); } теперь обратная ситуация: X++: static void Job685(Args _args) { void mthd1() { int i; ; i++; } ; mthd1(1); } P.S. я всегда был против такого использования методов, но иногда необходимость заставляет так писать. В общем будте внимательны, при передаче параметров во внутренние методы! P.S.1. Чуть не забыл, в Ax2009 эту ситуацию исправили, и компилятор на такие вещи реагирует
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
За это сообщение автора поблагодарили: mazzy (5), Pustik (3), Krasher (1). |
02.12.2011, 18:20 | #2 |
Участник
|
Угу, а в методах Maps - по-прежнему не проверяется:
static void Job8(Args _args) {; salesLine::findInventTransId("").SalesPurchLine::setPriceAgreement(); // компилируется без проблем } при том, что Map SalesPurchLine::setPriceAgreement() определен как server void setPriceAgreement(InventDim inventDim)agreements select by date { PriceDisc priceDisc; ; и т.д. } т.е. InventDim на этапе компиляции не требуется :-) |
|
|
За это сообщение автора поблагодарили: lev (2). |
|
|